看起来很简单,但我无法提出有效的结构。
只要文件中的Path
包含某些正则表达式,我都想引发异常。我有一个循环的文件列表,每当遇到无效的Path
异常时都会抛出该异常,并且文件不会添加到成功文件列表中。
尝试使用Mockito进行测试,例如:
doThrow(DefaultException.class).when(service).foo(any(Path.class), any(Path.class));
显然我遗漏了会抛出异常的部分,例如,路径中包含某些正则表达式,因为现在它为每个文件引发异常。
是否可以用满足我需要的东西替换any(Path.class)
?
答案 0 :(得分:0)
您可以使用:
Matchers.argThat(new ArgumentMatcher<Path>() {
@Override
public boolean matches(Object o) {
Path p = (Path) o;
if(p.toString().equals("some")) {
return true;
}else {
return false;
}
}
}
代替any(Path.class)
。
PS:p.toString().equals("some")
是示例条件。用真实的替换它。