java – 如何在Mockito中处理不匹配的参数?

我喜欢做以下事情:

.when( 
    myMock.doSomething(
        Matchers.eq( "1" )
    ) 
)
.thenReturn( "1" )
.othwerwise()
.thenThrow( new IllegalArgumentException() );

当然否则()方法不存在,只是为了显示我想要完成什么.

最佳答案
(轻微的免责声明,我从来没有这样做,只是在javadoc中阅读它)…如果你的模拟界面上的所有方法都可以使用相同的默认行为,那么可以使用set the default answer on your mock,

Foo myMock = Mockito.mock(Foo.class,new ThrowsExceptionClass(IllegalArgumentException.class));
Mockito.when(myMock.doSomething(Matchers.eq("1"))).thenReturn("1");

JavaDoc链接:Mockito#mockThrowsExceptionClass

或者,如Stubbing tutorial所讨论的那样,桩的顺序和最后的匹配胜利,所以你也可以做到:

Foo myMock = Mockito.mock(Foo.class);
Mockito.when(myMock.doSomething(Matchers.any(String.class))).thenThrow(IllegalArgumentException.class);
Mockito.when(myMock.doSomething(Matchers.eq("1"))).thenReturn("1");

转载注明原文:java – 如何在Mockito中处理不匹配的参数? - 代码日志