目次

モックについて

オブジェクトAが××の状態の場合, ○○の振る舞いをする… などのテストに利用する。

オブジェクトAの代わりにモックを使用することにより、オブジェクトAを特定の状態にセットアップ
する処理を簡略化することができる。

dependencies

build.gradleのdependenciesに下記の3行を追加。Mockito本体の他にdex化のライブラリが必要。

androidTestCompile 'org.mockito:mockito-core:1.+'
androidTestCompile 'com.google.dexmaker:dexmaker:1.+'
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.+'

サンプル

// Mockitoクラスはstaticインポートすることを推奨
import static org.mockito.Mockito.*;
...

  /**
   * モックが相互作用することを検証
   * @throws Exception
   */
  @Test
  public void testVerify() throws Exception {
      List mockedList = mock(List.class);
      mockedList.add("one");
      mockedList.clear();

      // mockのメソッドが呼びだされていることを確認する
      verify(mockedList).add("one");
      verify(mockedList).clear();
  }

  /**
   * スタブとして利用
   * @throws Exception
   */
  @Test
  public void testStub() throws Exception {
      List mockedList = mock(List.class);
      
      // スタブとして「first」を返すよう設定
      when(mockedList.get(0)).thenReturn("first");

      // JUnitで検証
      String str = mockedList.get(0).toString();
      assertEquals("first", str);
  }
  

参考URL

Mockito API
http://site.mockito.org/mockito/docs/current/org/mockito/Mockito.html