gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 20:45:48 27 4
gpt4 key购买 nike

我喜欢做以下事情:

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

当然 otherwise() 方法不存在,只是为了向您展示我想要完成的工作。

最佳答案

(轻微的免责声明,我从来没有亲自做过,只是在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 中所讨论的那样, stub 的顺序很重要,最后匹配的获胜,所以你也可以这样做:

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 中不匹配的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13061241/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com