yumemi-inc / android-training-template

Apache License 2.0
13 stars 2 forks source link

ViewModelのUnitTest #27

Open Seo-4d696b75 opened 1 year ago

Seo-4d696b75 commented 1 year ago

🔍 ViewModelのユニットテストを追加します

[!NOTE]

Required(先に完了させましょう)

  • 26

Next(次に取り組みましょう)

  • 任意課題
    • 28

    • 29

    • 32

課題内容

[!TIP] Repositoryを導入している場合、ViewModelはRepositoryの関数を呼び出すだけ&プロパティを公開するだけの実装になっているかもしれません。代わりにRepositoryをテストします。

テストを意識したアプリ設計

テストを書く前提でプログラムを設計していないと、テストはなかなか書きづらいものです。もしテストが書けなかった場合は次のようなリファクタリングをしてみましょう。

モックの利用

テスト対象のViewModelもしくはRepositoryを動かすためにはAPI呼び出しの実装(YumemiWeatherなど)が必要です。しかしテスト中にネットワーク通信が発生してしまうと様々な外的要因が入ってしまい、テスト対象自体に問題が無くてもテストが失敗する可能性があります 😇

ネットワーク通信に限らず、テストでは対象以外の依存をモック(代わりのインスタンス)に差し替えることでテスト対象に関心を集中させます 😎

参考資料