[解決済み] コルーチンを使ったテストでのTestScopeの高度な使用例
2022-02-24 09:02:18
質問
どなたか、新しい
TestScope
と
TestScope.launch
コルーチンを使ったテスト中に?
のようですが、新しい
kotlinx.coroutines.test
というリリースが追加されました。
TestScope
をライブラリに追加しました。また、古い
TestCoroutineDispatcher
を使用するように指示されています。
TestScope.runTests
しかし、その使い方については、あまりドキュメントが追加されていませんでした。私が見つけたものはすべて
これ
.
どなたか、さまざまなシナリオでの使用例を教えていただけませんか?
どのように解決するのですか?
コメントで紹介されている @Joffrey さんの方法でも直せました。
を使用するだけです。
runTest { }
を使うと、テストコードでコルーチンスコープを使用することができます。テストコードで
runTest { }
を使用することができます。
TestScope
というブロックの中に
this
.
私の場合、viewModelにこのようなフロー関数がありました。の中で動いていました。
viewModelScope
.
fun getFriendDataWithFlow() {
viewModelScope.launch {
repository.loadFriendsWithFlow()
...
}
}
そして、私のテストコードでこれをテストする必要があり、私はこのように使用しました。
@ExperimentalCoroutinesApi
@Before
fun setup() {
Dispatchers.setMain(StandardTestDispatcher())
}
@ExperimentalCoroutinesApi
@Test
fun temp() {
runTest {
viewModel.getFriendDataWithFlow()
}
}
を追加しただけです。
runTest { }
ブロックの中にコルーチンのコードを追加してください。そして、それは私のために動作しました。
私のテスト用コルーチンの依存関係は
"org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.0-RC"
.
関連
-
[解決済み】Android TextView : "setTextで表示されたテキストを連結しない" について
-
[解決済み】OnFragmentInteractionListenerを実装する方法
-
[解決済み】プロガードを有効にすると、タスク ':app:crashlyticsStoreDeobsDebug' の依存関係を判断できない。
-
[解決済み】apkファイルのインストール中に「パッケージが破損しているようです」というエラーが発生する。
-
[解決済み] SDKの場所がandroid studioで見つからない
-
[解決済み] android.intent.action.MAINの意味は何ですか?
-
[解決済み] Javaでコルーチンを実装する
-
[解決済み] Androidでファイルをダウンロードし、ProgressDialogで進捗を表示する。
-
[解決済み】ユニットテストと機能テストの違いは何ですか?
-
[解決済み】Kotlinのコルーチンにおけるlaunch/joinとasync/awaitの違いとは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】パッケージ名(Google Analytics)に一致するクライアントが見つからない - 複数のproductFlavorsとbuildTypes
-
[解決済み] シンボル 'context' を解決できない
-
[解決済み】com.android.ide.common.process.ProcessException: aaptの実行に失敗しました! どうすればいいですか?
-
[解決済み】java.lang.RuntimeException: アクティビティを開始できない ComponentInfo
-
[解決済み】プロガードを有効にすると、タスク ':app:crashlyticsStoreDeobsDebug' の依存関係を判断できない。
-
[解決済み】ビットマップを保存する場所について
-
[解決済み] SDKの場所がandroid studioで見つからない
-
[解決済み] BIOSのセキュリティ設定でVT-xを有効にする(お使いのコンピュータのドキュメントを参照)。
-
[解決済み] Gradle DSL メソッドが見つかりません:'compile()'
-
[解決済み] Gradleのエラーです。イベントディスパッチスレッドからの書き込みアクセスは、Android Studioでのみ許可されます。