🧪

ViewModelをテストする

2023/11/30に公開

Androidでテストコードを書く場合はまず、codelabsを探しますが、大抵の場合はそのままでは動きません。
原因としては、Android Studioが新しくなってる(大抵の場合はJDKが新しくなってる)のが原因です。

ということで、下記のcodelabのコードを
https://developer.android.com/codelabs/advanced-android-kotlin-training-testing-basics/#0

Giraffe | 2022.3.1 Patch 4の環境で動かしてみました(JDKは17)。

結果のコードは下記に置いてあります。
https://github.com/na8esin/advanced-android-testing/blob/842252afa85822cc152ab35ee981eeac8333dc00/app/src/test/java/com/example/android/architecture/blueprints/todoapp/LiveDataTestUtil.kt

大きな流れとしましては、

  • AGP Upgrade Assistantを使って、7系から、8.1系まで上げる
  • kotlinのバージョンを1.5系から1.8系まで上げる
  • roomのバージョンは2.3.0 -> 2.4.3に上げる
    のような感じです。

テストコードの方はざっとこんな感じです

LiveDataの動きを確認するだけでかなり大変ですが、ViewModel内に大量のLiveDataがあるプロジェクトでは有用なんではないかと思います。

参考

CountDownLatchを理解するために作ったサンプル
https://github.com/na8esin/sample-kotlin-jvm/blob/309168cc6353218db2f78dce507383e2dcb40fc3/src/main/kotlin/concurrent/Latch.kt

Discussion