OSS探訪GitHubでログイン

kotlinx.coroutines Flowの値・完了・例外を順序どおり待ち受けて検証する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
2,863
主要言語
Kotlin
ライセンス
Apache-2.0
リポジトリ最終更新
2026/09/25
ページ内ナビ

概要

Turbineはkotlinx.coroutines Flow向けの小さなテストライブラリです。Flowをテスト用Turbineへ接続し、値・完了・例外をawaitItemやawaitCompleteなどで順番に待ちながら検証できます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

Flowのイベントをawait系APIで順番に検証する

Flow.testの検証ブロックでawaitItem()、awaitComplete()、awaitError()などを使い、非同期に届くイベントをテストコード上の順序へ落とし込めます。

出典:[2]

複数Flowや長いシナリオではtestInを使う

testInでFlowごとのTurbineを作り、同じCoroutineScope内で複数ストリームのイベントを個別に待てます。ViewModelが複数のFlowを公開するケースなどで検証を分けられます。

出典:[2]

向いている用途

StateFlowやFlowを公開するKotlinコードのユニットテストに向く

AndroidのViewModelやrepository層など、coroutineベースの状態・イベントをFlowで公開するコードを、明示的な順序と完了条件でテストしたい場合に適します。

出典:[2]

導入前の確認

kotlinx.coroutines testの不安定API依存を更新時に確認する

READMEはTurbine自身のAPIは安定している一方、UnconfinedTestDispatcherというkotlinx.coroutines testの不安定APIへ依存していると説明しています。coroutinesの更新時にはタイミングやrunTestとの組み合わせを回帰確認してください。

出典:[2][3]

参考にした公式資料

  1. [1]cashapp/turbine — GitHub repository(2026-10-06)
  2. [2]Turbine 1.2.1 — README(2026-10-06)
  3. [3]Turbine 1.2.1 release(2026-10-06)
  4. [4]Turbine Apache-2.0 license(2026-10-06)
編集部からの補足

Flowのテストをcollectと手動同期処理の組み合わせから、イベントを待つ読みやすいDSLへ整理できます。kotlinx.coroutines testの不安定APIへの内部依存があるため、coroutines更新時はテスト挙動も回帰確認してください。

3ステップで試す

  1. 1

    Turbine 1.2.1をテスト依存関係へ追加する

    Maven Centralから確認済みの安定版1.2.1をテスト用依存関係として追加します。

    testImplementation("app.cash.turbine:turbine:1.2.1")
  2. 2

    Flowの値と完了を順番に検証する

    READMEの最小例に沿って、Flowから届く2つの値と正常完了を順番に待って検証します。

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

    ユニットテストを実行する

    プロジェクトのJVMユニットテストを実行し、Turbineを使ったFlowテストが通ることを確認します。

    ./gradlew test
公式READMEで確認

成長

成長の推移 · 直近30日

2,863 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
5
Open PR
6

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る
Stars
2,863
Forks
137
Watchers
21
Open Issues
12
Contributors
34
所有者種別
Organization
主要言語
Kotlin
ライセンス
Apache-2.0
リポジトリ最終更新
2026/09/25

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?