java - 当对象参数值与模式匹配时,Mockito 抛出异常
问题描述
看起来很简单,但我想不出有效的结构。
Path
每当文件包含某些正则表达式时,我都想抛出异常。我有一个循环的文件列表,每当我遇到无效Path
异常时,都会抛出异常,并且文件不会添加到成功文件列表中。
尝试使用 Mockito 对其进行测试,例如:
doThrow(DefaultException.class).when(service).foo(any(Path.class), any(Path.class));
显然我错过了抛出异常的部分,例如路径中有一些特定的正则表达式,因为现在它正在为每个文件抛出异常。
有没有办法any(Path.class)
用能满足我需求的东西来代替?
解决方案
您可以使用:
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")
是样品条件。换成真实的。
推荐阅读
- javascript - typeahead 设置数组键值对
- reactjs - 无法读取未定义 React Js 的属性“参数”
- libra - 如何用两台服务器搭建一个 Libra 测试网?
- c++ - 关于 C++ 中的 new 和 delete[]
- reactjs - Reactjs Module CSS 多类选择器
- mongodb - 带有通配符的mongodb集合级别访问控制
- azure - 根据 AAD ID 检索 Teams 用户 ID
- html - 如何在 Bootstrap 4 中为特定断点设置不同的边距(无 javascript)
- react-native - 将导航道具传递给外部组件
- css - 向 CSS 多列布局内的元素添加图像会产生垂直间隙