Android Test Night #8 で盛り上がっている様子
UnconfinedTestDispacherを使うと、新しいcontextをすぐ実行してくれる。runCurrentで待つ必要がなくなる #android_test_night
2023-03-10 19:16:08UnconfinedTestDispatcherはcoroutineを実行してくれる #android_test_night
2023-03-10 19:16:09withContextでDispatchers.Mainとかに切り替えているコードがテスト対象にあったりするとエラーになる。Dispatchers.setMain()で任意のテスト用Dispatcherに切替可能。setupとかで設定する #android_test_night
2023-03-10 19:17:46FlowはTurbineが公式ドキュメントに記載されてて、Turbineを使ったテストがデファクトになるのかな?って勝手に思ってた #android_test_night
2023-03-10 19:19:09FlowのときはUnconfinedTestDispatcherを使って値がすぐに入ってくるようにする #android_test_night
2023-03-10 19:20:28StateFlowはめちゃテストめんどいのでturbine使うオチだと予想…めちゃQoLが上がる #android_test_night
2023-03-10 19:21:02Flowの値をcollectする際には後続処理を止めないようにlaunchする必要がある。Flowに値を流すためにはUnconfinedTestDispatcherですぐにcoroutineを動かすのが良い #android_test_night
2023-03-10 19:22:16テスト終了時にcoroutineがcompleteしているかcancelされている必要があるが、backgroundScope.launchを使うと、自動でjobのcancelをしてくれるので便利 #android_test_night
2023-03-10 19:22:37Turbineこれかな?知らなかった github.com/cashapp/turbine #android_test_night
2023-03-10 19:23:30ちょっと前だけど、Espresso + Spoonで書いてたなー。 #android_test_night
2023-03-10 19:27:16E2Eテストはespressoで実行可能。なんと言ってもE2Eテストなのでテスト対象の大半がプロダクションコード。が、遅いし不安定になりがちで書きたくなくなる #android_test_night
2023-03-10 19:27:24UIテスト、composeになってからは期待してる 以前は正直1200円/時のバイト君よりもコスパが・・・ #android_test_night
2023-03-10 19:28:02ViewModel相当クラスやUseCaseであれば単体テスト可能。UIも同様に振る舞い(テキストが未入力ならボタンがdisableになる、とか)のテストができないか? #android_test_night
2023-03-10 19:29:47