更新到 2.3 后,来自mockito 1 的方法不起作用。
private class ArgumentsMatcher implements ArgumentMatcher<Object[]> {
private final Object[] expected;
private ArgumentsMatcher(Object[] expected) {
this.expected = expected;
}
@Override
public boolean matches(Object[] argument) {
return Arrays.equals(expected, argument);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用这样的捕获器匹配它:
// Use an argument captor of whatever type the varargs method is
ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class);
// Verify on the method using the captor
verify(fooClass).fooMethod(captor.capture());
// Assert on the expected values
assertEquals(captor.getAllValues(), Arrays.asList("vararg1", "vararg2"));
Run Code Online (Sandbox Code Playgroud)
这样做的好处是你可以匹配数组(如果你在数组和可变参数可以混合的情况下)也可以使用你想要的任何 hamcrest 匹配器,这样你就可以做一些事情,比如验证单个元素是否存在,忽略顺序,忽略重复项,或任何您需要做的事情。
| 归档时间: |
|
| 查看次数: |
2882 次 |
| 最近记录: |