Java 是否需要为这种情况编写自定义匹配器?
我有以下情况。。。每当调用特定的方法时,我想抛出一个异常。我不在乎传递给这个方法的是什么,我只想调用一个异常。问题在于,此方法将自定义类作为参数 我发现实现这一点的唯一方法是使用以下方法:Java 是否需要为这种情况编写自定义匹配器?,java,junit,mocking,mockito,Java,Junit,Mocking,Mockito,我有以下情况。。。每当调用特定的方法时,我想抛出一个异常。我不在乎传递给这个方法的是什么,我只想调用一个异常。问题在于,此方法将自定义类作为参数 我发现实现这一点的唯一方法是使用以下方法: // Matches any Foo TypeSafeMatcher<Foo> fooMatcher = new TypeSafeMatcher<Foo>() { @Override public Boolean matchesSafely(Foo foo) { ret
// 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);
我想知道是否有一种更简单的方法可以做到这一点,而不必为每个自定义类创建自定义匹配器
谢谢演员阵容可能足够了:
doThrow(new RuntimeException("dummy exception")).when(mockObj).someMethod((Foo)anyObject());
演员阵容可以满足以下要求:
doThrow(new RuntimeException("dummy exception")).when(mockObj).someMethod((Foo)anyObject());
如果您希望执行与引发异常不同的操作,还可以使用doAnswer()
doAnswer(new Answer() {
public Object answer(InvocationOnMock invocation) {
Object[] args = invocation.getArguments();
Mock mock = invocation.getMock();
return null;
}})
.when(mock).someMethod();
如果您希望执行与引发异常不同的操作,还可以使用doAnswer()
doAnswer(new Answer() {
public Object answer(InvocationOnMock invocation) {
Object[] args = invocation.getArguments();
Mock mock = invocation.getMock();
return null;
}})
.when(mock).someMethod();
你试过isA匹配器吗
doThrow(new RuntimeException("dummy exception")).when(mockObj).someMethod(isA(Foo.class));
你试过isA匹配器吗
doThrow(new RuntimeException("dummy exception")).when(mockObj).someMethod(isA(Foo.class));