ttt*_*ppp 24 java unit-testing mockito
我的测试中有一行目前看起来像:
Mockito.verify(mockMyObject).myMethod(Mockito.contains("apple"));
Run Code Online (Sandbox Code Playgroud)
我想修改它以检查参数是否包含"apple"和"banana".我该怎么做?
Bor*_*vić 32
只需使用Mockito.matches(String),例如:
Mockito.verify(mockMyObject).
myMethod(
Mockito.matches("(.*apple.*banana.*)|(.*banana.*apple.*)"
)
);
Run Code Online (Sandbox Code Playgroud)
小智 13
我认为最简单的解决方案是多次调用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"));
Run Code Online (Sandbox Code Playgroud)
Mockito.verify(mockMyObject)
.myMethod(Mockito.argThat(s ->
s.contains("apple") && s.contains("banana"));
Run Code Online (Sandbox Code Playgroud)
小智 5
也许这不再相关,但我找到了另一种方法,按照 Torsten answer 和 this other answer。就我而言,我使用了 Hamcrest Matchers
Mockito.verify(mockMyObject).myMethod(
Mockito.argThat(Matchers.allOf(
Matchers.containsString("apple"),
Matchers.containsString("banana"))));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20558 次 |
| 最近记录: |