我有以下情况...我想在调用特定方法时抛出异常。我不关心传递给这个方法的是什么,我只想调用一个异常。问题在于此方法将自定义类作为参数。
我发现唯一的方法是使用以下方法:
// Matches any Foo
TypeSafeMatcher<Foo> fooMatcher = new TypeSafeMatcher<Foo>() {
@Override
public Boolean matchesSafely(Foo foo) {
return true;
}
// more overrides
}
doThrow(new RuntimeException("dummy exception")).when(mockObj).someMethod(fooMatcher);
我尝试执行以下操作,但收到类似于“无法将 Object 转换为 Foo”的消息...这是有道理的:
doThrow(new RuntimeException("dummy exception")).when(mockObj).someMethod(anyObject());
我想知道是否有更简单的方法来执行此操作而无需为每个自定义类创建自定义匹配器?
谢谢
最佳答案
你试过 isA 匹配器了吗?
doThrow(new RuntimeException("dummy exception")).when(mockObj).someMethod(isA(Foo.class));
关于java - 是否需要为这种 Mockito 情况编写自定义匹配器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4381415/