[英]Mockito issue - when(java.lang.Void) in Stubber cannot be applied to void
我无法弄清楚为什么doNothing
不适用于此? 有任何想法吗?
@Captor
ArgumentCaptor<GenericClass<someOtherClass>> captor;
...
Mockito.doNothing().when(mockObject.methodToStub(captor.capture()));
错误是:
Exception: when(java.lang.Void) in Stubber cannot be applied to void
这个存根是错误的:
doNothing().when(mockObject.methodToStub(captor.capture())); // wrong
如果使用此API样式(它应该只包含模拟), methodToStub(...)
必须在when
之外:
doNothing().when(mockObject).methodToStub(captor.capture()); // correct
然而,这些评论:
doNothing
是mock的void方法的默认值。 BDDMockito
别名,使你的代码是真实的点菜行为驱动开发 虽然你问为什么没有什么不起作用,但我知道你实际上想要捕获methodToStub的参数。
最直接的方法是:
verify(mockObject).methodToStub(captor.capture());
如果你只是想让你模拟在void方法调用上什么都不做,请记住什么都不做是mocks上void方法的默认设置 。
如果由于某种原因你仍然需要调用doNothing
,你应该注意括号位置。 它应该如下所示:
doNothing().when(mockObject).methodToStub(any());
或者doNothing()。when(mockObject).methodToStub(captor.capture());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.