私のテストには、現在次のような行があります。
Mockito.verify(mockMyObject).myMethod(Mockito.contains("apple"));
"apple"
パラメータにとの両方が含まれているかどうかを確認するように変更したいと思います"banana"
。これについてどうすればいいですか?
私のテストには、現在次のような行があります。
Mockito.verify(mockMyObject).myMethod(Mockito.contains("apple"));
"apple"
パラメータにとの両方が含まれているかどうかを確認するように変更したいと思います"banana"
。これについてどうすればいいですか?
Mockito.matches(String)
たとえば、次のように使用します。
Mockito.verify(mockMyObject).
myMethod(
Mockito.matches("(.*apple.*banana.*)|(.*banana.*apple.*)"
)
);
Java 8 および Mockito 2.1.0 以降、次のように Streams を使用できます。
Mockito.verify(mockMyObject).myMethod(
Mockito.argThat(s -> s.contains("apple") && s.contains("banana"))
);
したがって、読みやすさが向上します
最も簡単な解決策は、verify() を複数回呼び出すことだと思います。
verify(emailService).sendHtmlMail(anyString(), eq(REPORT_TITLE), contains("Client response31"));
verify(emailService).sendHtmlMail(anyString(), eq(REPORT_TITLE), contains("Client response40"));
verify(emailService, never()).sendHtmlMail(anyString(), anyString(), contains("Client response30"));