Mockitoの概要とコード例

2420 ワード

Mockitoの概要と例
Mockitoはオープンソースのmockツールパッケージでもあり、EasyMockとは異なる場合は、これらの動作を録画、再生する必要がなく、文法的に柔軟で、読みやすさが向上します.
公式サイト:mockito公式ドキュメント:mockito.html
サンプルコード
1.mavenエンジニアリングではまずpomパッケージを導入:

    org.mockito
    mockito-core
    2.7.12
    test


2.テストクラスに静的リソースを導入する
import static org.mockito.Mockito.*; 

3.次の機能をサポートします.(ソースは公式ドキュメントから)
  • 動作が
  • に呼び出されたかどうかを検証する.
    //create mock
    List mockedList = mock(List.class);
    //use mock object
    mockedList.add("one");
    mockedList.clear();
    // add , “one”。clear 。
    verify(mockedList).add("one");
    verify(mockedList).clear();
    // 。 add("two")。
    verify(mockedList).add("two");
    
  • ピン:mockオブジェクトのメソッドを所望の値に戻すstubを過ぎない戻り値のあるメソッドに対して、デフォルト値(0,false,nullなど)
  • を返す.
    //stubbing。 get(0) , "first".  get(1) , 。
    when(mockedList.get(0)).thenReturn("first");
    when(mockedList.get(1)).thenThrow(new RuntimeException());
    

    繰り返しstub
    // stub, , "second":
    when(mockedList.get(0)).thenReturn("first");
    when(mockedList.get(0)).thenReturn("second");
    // “first”, “second”。 n 。
    when(mockedList.get(0)).thenReturn("first").thenReturn("second");
     stub , stub 。
     get(0) , "second".
    
  • パラメータマッチングget(任意の整数)を実現したい場合はnullを返します.どうすればいいですか?
  • when(mockedlist.get(anyInt())).thenReturn(null);
    

    多くのarguments matcherがあります.More ArgumentMatchers Argumentを参照してカスタマイズをサポートします.
  • 認証方法は、特定回数/少なくともx回/最大x回/未呼び出し
  • を呼び出す.
    // add("twice") 。
    verify(mockedList, times(2)).add("twice");
    // add("twice") 。 。
    verify(mockedList, atLeastOnce()).add("twice");
    verify(mockedList, atLeast(2)).add("twice");
    verify(mockedList, atMost(5)).add("twice");
    verify(mockedList, never()).add("twice");
    
  • メソッド呼び出し時に例外
  • を投げ出す.
    doThrow(new RuntimeException()).when(mockedList).clear();
    
  • 順序の1つのmockオブジェクトを検証する方法は、特定の順序で複数のmockオブジェクトを呼び出す、特定の順序で複数の
  • を呼び出す.
    inOrder.verify(firstMock).add("was called first");
    inOrder.verify(secondMock).add("was called second");
    

    ここで、杭挿入(stubbing)mockオブジェクトの戻り値は、テストで最も一般的に使用されます.