テストには、現在次のような行があります。
Mockito.verify(mockMyObject).myMethod(Mockito.contains("Apple"));
パラメータに"Apple"
と"banana"
の両方が含まれているかどうかを確認するように変更したいと思います。どうすればいいですか?
Mockito.matches(String)
を使用するだけです。例:
Mockito.verify(mockMyObject).
myMethod(
Mockito.matches("(.*Apple.*banana.*)|(.*banana.*Apple.*)"
)
);
最も簡単な解決策は、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"));
Mockito.verify(mockMyObject)
.myMethod(Mockito.argThat(s ->
s.contains("Apple") && s.contains("banana"));