Turbine で Kotlin coroutine Flow をテストする

👉 cashapp/turbine: A small testing library for kotlinx.coroutines Flow 

Turbine は Kotlin Flow 向けのテストライブラリです。


flowOf("one", "two").test {
  assertEquals("one", awaitItem())
  assertEquals("two", awaitItem())
  awaitComplete()
}

タービン (Turbine) とは、流体 (Flow)がもっているエネルギーを有用な機械的動力に変換する回転式の原動機の総称。

👉 タービン - Wikipedia 

GitHub にあるサンプルコードを試してみます。

Flow を使っていれば意味は分かるでしょう。



kotlin coroutine flow turbine

@JakeWharton は、シンプルで使いやすい高品質なツールやライブラリで定評があります。

ネーミングは内容に忠実なだけでなく、センスもあります。


【Kotlin】ぼくらは Flow の マーブルダイアグラム を見るのか。

ドキュメントや関連記事を見てもよく意味が分からないような複雑なオペレーターの機能が、一見するだけでで分かることがよくありました。

Reactivex-FlatMap
👉 ReactiveX - FlatMap operator 

Kotlin Flow のオペレーターたちも、これらの名前や機能を元に作られているので、上記 ReactiveX サイトのマーブル図を見れば大体は分かりますが。

Kotlin Flow 向けにも公開してる方がいます。

マーブルをドラッグもできます。

FlowMarbles
👉 FlowMarbles 

ソースコードも確認できるようです。

👉 rougsig/flowmarbles: Interactive diagrams of Kotlin Flow https://flowmarbles.com 


複数の Flow を受け取る How to collect multiple flows

パラレルで同じライフサイクルの場合だけども。

flow-lifecycle



launch をネストしていますね!


Medium.com で表示

👉 A safer way to collect flows from Android UIs | by Manuel Vivo | Android Developers | Medium