Mockito フレームワークは、Java アプリケーションのテストに使用される、mock()、verify()、when() などのさまざまなメソッドを提供します。これらの事前定義されたメソッドを使用すると、テストが非常に簡単になります。
Mockito メソッドの簡単な説明を以下に示します。
xdxdとはどういう意味ですか
Mockito のモック() メソッド
これは、特定のクラスまたはインターフェイスのモック オブジェクトを作成するために使用されます。 Mockito には 5 つが含まれています モック() 異なる引数を持つメソッド。モックに何も割り当てなかった場合、モックはデフォルト値を返します。 5 つのメソッドはすべて、オブジェクトをモックするという同じ機能を実行します。
以下に、さまざまなパラメーターを含むmock() メソッドを示します。
構文: モック(クラス classToMock)
構文: モック(クラスclassToMock, 回答defaultAnswer)
構文: モック(クラス classToMock, MockSettings モック設定)
構文: モック(クラス classToMock, ReturnValues returnValues)
構文: モック(クラス classToMock, 文字列名)
次のコード スニペットは使用方法を示しています モック() 方法:
ToDoService doService = mock(ToDoService.class);
Mockito when() メソッド
スタブ化メソッドが有効になります。特定のメソッドが呼び出されたときに特定の値を返すようにモックしたい場合に使用する必要があります。簡単な言葉で、 ' いつ XYZ() メソッドが呼び出されます。 それから ABCを返してください。主に、実行する何らかの条件がある場合に使用されます。
構文: when(T メソッドコール)
次のコード スニペットは、 when() メソッドの使用方法を示しています。
when(mock.someCode ()).thenReturn(5);
上記のコードでは、 thenReturn() 主に一緒に使用されます いつ() 方法。
Mockito verify() メソッド
の 確認する() Method は、指定されたメソッドが呼び出されているかどうかを確認するために使用されます。簡単に言えば、テスト中に一度発生した特定の動作を検証します。これは、定義されたメソッドが確実に呼び出されるように、テスト コードの最後で使用されます。
Mockito フレームワークは、オブジェクトをモックするためのパラメータを含むすべてのメソッド呼び出しを追跡します。モック化後、verify() メソッドを使用して、定義された条件が満たされているかどうかを検証できます。このタイプのテストは、次のように呼ばれることもあります。 行動テスト。 メソッド呼び出しの結果をチェックするのではなく、メソッドが正しいパラメーターで呼び出されているかどうかをチェックします。
verify() メソッドは、呼び出し数をテストするためにも使用されます。したがって、次を使用して正確な呼び出し数をテストできます。 回メソッド、少なくとも 1 回メソッド、 そして せいぜい方法 モックされたメソッドの場合。
Mockito クラスで使用できる verify() メソッドには次の 2 種類があります。
構文: verify(Tモック)
構文: verify(T モック、VerificationMode モード)
Mockito spy() メソッド
Mockito は、オブジェクトを部分的にモックするメソッドを提供します。 スパイ 方法。スパイ手法を使用する場合、実際のオブジェクトが存在し、その実際のオブジェクトからスパイまたはスタブが作成されます。 spy を使用してメソッドをスタブしない場合、実際のメソッドの動作が呼び出されます。 spy() メソッドの主な機能は、実際のオブジェクトの特定のメソッドをオーバーライドすることです。 spy() メソッドの機能の 1 つは、特定のメソッドの呼び出しを検証することです。
Mockito クラスで使用できる spy() メソッドは 2 種類あります。
構文: スパイ(Tオブジェクト)
構文: spy(クラス classToSpy)
次のコード スニペットは、 spy() メソッドの使用方法を示しています。
List spyArrayList = spy(ArrayList.class);
Mockitoのreset()メソッド
Mockito replace() メソッドは、モックをリセットするために使用されます。これは主に、コンテナーに注入されたモックを操作するために使用されます。通常、reset() メソッドはコードが長くなり、テストが不十分になります。 replace() メソッドを使用するよりも、新しいモックを作成することをお勧めします。そのため、reset() メソッドはテストでほとんど使用されません。
replace() メソッドのシグネチャは次のとおりです。
テストとテストの種類
public static void reset(T ... mocks) { MOCKITO_CORE.reset(mocks); }
Mockito verifyNoMoreInteractions() メソッド
これは、指定されたモックに未検証の相互作用があるかどうかを確認するために使用されます。すべてのモックを検証した後でこのメソッドを使用すると、モックで他に何も呼び出されなかったことを確認できます。また、setup()、@Before メソッド、コンストラクターなど、テスト メソッドの前に発生する未検証の呼び出しも検出します。これはオプションのメソッドであり、すべてのテストで使用する必要はありません。
verifyNoMoreInteractions() メソッドのシグネチャは次のとおりです。
public static void verifyNoMoreInteractions(Object... mocks) { MOCKITO_CORE.verifyNoMoreInteractions(mocks); }
Mockito verifyZeroInteractions() メソッド
指定されたモックでインタラクションが発生していないことを検証します。また、setup()、@Before メソッド、コンストラクターなど、テスト メソッドの前に発生した呼び出しも検出します。
verifyZeroInteractions() メソッドのシグネチャは次のとおりです。
public static void verifyZeroInteractions(Object... mocks) { MOCKITO_CORE.verifyNoMoreInteractions(mocks); }
Mockito doThrow() メソッド
void メソッドをスタブして例外をスローする場合に使用されます。メソッド呼び出しごとに新しい例外インスタンスが作成されます。 Mockito クラスでは、以下に示すように、パラメーターが異なる 2 種類の doThrow() メソッドを使用できます。
doThrow() メソッドのシグネチャは次のとおりです。
public static Stubber doThrow(Throwable toBeThrown) { return MOCKITO_CORE.doAnswer(new ThrowsException(toBeThrown)); }
構文: doThrow(スローされるクラス)
doThrow() メソッドのシグネチャは次のとおりです。
public static Stubber doThrow(Class toBeThrown) { return MOCKITO_CORE.doAnswer(new ThrowsExceptionClass(toBeThrown)); }
Mockito doCallRealMethod() メソッド
これは、メソッドの実際の実装を呼び出したいときに使用されます。言い換えれば、オブジェクトの部分的なモックを作成するために使用されます。実際のメソッドを呼び出すなど、まれな状況で使用されます。これは spy() メソッドに似ていますが、唯一の違いは、結果が複雑なコードになることです。
doCallRealMethod() メソッドのシグネチャは次のとおりです。
public static Stubber doCallRealMethod() { return MOCKITO_CORE.doAnswer(new CallsRealMethods()); }
Mockito doAnswer() メソッド
これは、一般的な Answer タイプを使用して void メソッドをスタブする場合に使用されます。 doAnswer() メソッドのシグネチャは次のとおりです。
public static Stubber doAnswer(Answer answer) { return MOCKITO_CORE.doAnswer(answer); }
Mockito doNothing() メソッド
void メソッドを何も行わないように設定するために使用されます。 doNothing() メソッドはまれに使用されます。デフォルトでは、モックインスタンスの void メソッドは何も行いません。つまり、タスクは実行されません。
doNothing() メソッドのシグネチャは次のとおりです。
ネットワークとインターネット
public static Stubber doNothing() { return MOCKITO_CORE.doAnswer(new DoesNothing()); }
Mockito doReturn() メソッド
これは、Mockito.when(object) を使用できないまれな場合に使用されます。 Mockito.when(object) メソッドは、引数のタイプセーフであり、doReturn() メソッドと比較して読みやすいため、スタブ化には常に推奨されます。
doReturn() メソッドのシグネチャは次のとおりです。
public static Stubber doReturn(Object toBeReturned) { return MOCKITO_CORE.doAnswer(new Returns(toBeReturned)); }
Mockito inOrder() メソッド
これは、特定の順序でモックを検証できるようにするオブジェクトを作成するために使用されます。順番に検証を行うと、すべてのインタラクションを検証する必要がないため、より柔軟になります。テストに関心のあるインタラクションのみを (順番に) 検証する必要があります。 inOrder() メソッドを使用して、順序検証に関連するモックを渡す inOrder オブジェクトを作成することもできます。
Mockito.inOrder() メソッドのシグネチャは次のとおりです。
public static InOrder inOrder(Object... mocks) { return MOCKITO_CORE.inOrder(mocks); }
MockitoのignoreStubs()メソッド
これは、検証のために指定されたモックのスタブ化されたメソッドを無視するために使用されます。これは、verifyNoMoreInteractions() メソッドまたは検証 inOrder() メソッドと併用すると便利です。また、スタブ化された呼び出しの冗長な検証を回避するのにも役立ちます。
ignoreStubs() メソッドのシグネチャは次のとおりです。
public static Object[] ignoreStubs(Object... mocks) { return MOCKITO_CORE.ignoreStubs(mocks); }
Mockitoのtimes()メソッド
これは、メソッド呼び出しの正確な回数を確認するために使用されます。つまり、メソッドが呼び出された回数を宣言します。 time() メソッドのシグネチャは次のとおりです。
public static VerificationMode times(int wantedNumberOfInvocations) { return VerificationModeFactory.times(wantedNumberOfInvocations); }
Mockito Never() メソッド
インタラクションが発生しなかったことを検証するために使用されます。 Never() メソッドのシグネチャは次のとおりです。
public static VerificationMode never() { return times(0); }
Mockito atLeastOnce() メソッド
これは、メソッドが少なくとも 1 回呼び出される必要があることを意味する、少なくとも 1 回の呼び出しを検証するために使用されます。
atLeastOnce() メソッドのシグネチャは次のとおりです。
public static VerificationMode atLeastOnce() { return VerificationModeFactory.atLeastOnce(); }
Mockito atLeast() メソッド
これは、少なくとも x 回の呼び出しを検証するために使用されます。たとえば、atLeast(3) と指定すると、メソッドが最低 3 回呼び出されることを意味します。
atLeast() メソッドのシグネチャは次のとおりです。
public static VerificationMode atLeast(int minNumberOfInvocations) { return VerificationModeFactory.atLeast(minNumberOfInvocations); }
Mockito atMost() メソッド
これは、最大 x 回の呼び出しを検証するために使用されます。たとえば、atMost(3) と指定すると、メソッドが最大 3 回呼び出されることを意味します。
atMost() メソッドのシグネチャは次のとおりです。
public static VerificationMode atMost(int maxNumberOfInvocations) { return VerificationModeFactory.atMost(maxNumberOfInvocations); }
Mockito は、() メソッドを呼び出します
これにより、貪欲でない検証を順番に行うことができます。 inOrder() 検証メソッドでのみ使用できます。たとえば、inOrder.verify(mock, Calls(3)).xyzMethod('...');
Calls() メソッドのシグネチャは次のとおりです。
public static VerificationMode calls( int wantedNumberOfInvocations ){ return VerificationModeFactory.calls( wantedNumberOfInvocations ); }
Mockito のみ() メソッド
指定されたメソッドが唯一呼び出されたメソッドであるかどうかをチェックします。 Only() メソッドのシグネチャは次のとおりです。
vlcでYouTubeビデオをダウンロード
public static VerificationMode only() { return VerificationModeFactory.only(); }
Mockito timeout() メソッド
これにより、Mockito がタイムアウトを使用して検証を実行できるようになります。これは、検証がすぐに失敗するのではなく、特定のインタラクションに対して特定の期間待機するように指示します。既存の状況でのテストに役立つ場合があります。
timeout() メソッドは after() メソッドとは異なります。after() メソッドは最終結果が宣言されない限り全期間待機するのに対し、timeout() メソッドは検証に合格するとすぐに停止します。テストではほとんど使用されません。
timeout() メソッドのシグネチャは次のとおりです。
public static VerificationWithTimeout timeout(long millis) { return new Timeout(millis, VerificationModeFactory.times(1)); }
Mockito after() メソッド
これにより、Mockito は一定期間にわたって検証できるようになります。 after() メソッドが timeout() メソッドとは異なることについてはすでに説明しました。
after() メソッドのシグネチャは次のとおりです。
public static VerificationAfterDelay after(long millis) { return new After(millis, VerificationModeFactory.times(1)); }
Mockito validateMockitoUsage() メソッド
これは、Mockito フレームワークの無効な使用を検出するためにフレームワークの状態を明示的に検証するために使用されます。これは、使用状況を常に検証するため、Mockito のオプション機能です。組み込みランナー (MockitoJUnitRunner) とルール (MockitoRule) は両方とも、各テスト メソッドの後に validateMockitoUsage() メソッドを呼び出します。
validateMockitoUsage() メソッドのシグネチャは次のとおりです。
public static void validateMockitoUsage() { MOCKITO_CORE.validateMockitoUsage(); }
Mockito withSettings() メソッド
追加のモック設定を使用してモックを作成するために使用されます。テストでは時々使用する必要があります。 withSettings() メソッドを使用する代わりに、単純なモックを使用して単純なテストを作成します。 MockSettings を使用する主な理由は次のとおりです。
- MockSetting を使用すると、必要に応じて他のモック設定を簡単に追加できます。
- コードを混乱させることなく、さまざまなモック設定を組み合わせます。
withSettings() メソッドのシグネチャは次のとおりです。
public static MockSettings withSettings() { return new MockSettingsImpl().defaultAnswer(RETURNS_DEFAULTS); }