Androidで単体テストケースを作成するのは初めてです。
だから私は多くのものを検索しました。
ですから、ロボエレクトリックとモキトには疑問があります。
MokitoとRobolectricの違いを探していますが、適切な答えが得られません。
提案してください。
それらはわずかに異なる使用法を持ち、私は私のプロジェクトで両方を使用する傾向があります。
Mockito
yourクラスのモックを作成するために使用されます。
特定のクラスをテストするときは、Mockitoですべての依存関係をモックします。
可能な場合は、ほとんどのテストでmockitoを使用する必要があります。これを可能にするために、ほとんどの人はコードをMVPなどに分割し、ビジネスロジックとビューロジックを分離しています。このように、ビジネスロジック(Presenter)はAndroidライブラリに関する知識(または依存関係)を持たず、それらのモックを持つ必要はありません。
Robolectric
Androidクラスの多くのモックを含むライブラリです。
Robolectricテストランナーは、テストの実行時に、実際のAndroidクラスの代わりにこれらの「シャドウオブジェクト」を挿入します。これにより、Androidのインスタンスを起動せずにJVMでテストを実行できます。
MVPを使用する場合、ビューレイヤーはアクティビティ/フラグメントによって実装される傾向があり、ここでRobolectricを使用してこれらをモックできます。
メモ
Robolectricは必要な場合にのみ使用してください。基本的にAndroidフレームワークの一部を再実装しますが、常に同じ方法であるとは限りません。
PowerMockなどのanotherライブラリも必要になる場合があります。これにより、Mathなどの静的クラスのモックが可能になります。または、TextUtilsなどの静的クラスAndroidクラスのモックに使用できます。
両方ともJUnitで使用されます
Mockitoだけでほとんどのケースをカバーできます。
ただし、Robolectricは、Android Activity-またはFragmentなどのコンポーネントnit Test(Android SDK)。エミュレータやデバイスを必要とせず、計測テストよりもかなり高速です。
私の提案:ユニットテストにはMockitoを、UIテストにはEspressoを使用してください。これらはAndroidの半公式のテストフレームワークです。
Android SDK。に依存関係がある場合は、ユニットテストにRobolectricを追加します。