我目前正尝试在我的单元测试中使用spock而不是junit。但是我遇到了MissingMethodInvocationException的问题。
我在嘲笑Provider<T>.get(),如下所示
Provider<SomeOjb> a = Mock()
def setup(){
SomeOjb obj = new SomeObj();
Mockito.when(a.get()).thenReturn(obj)
}但在运行它之后,我得到了
org.mockito.exceptions.misusing.MissingMethodInvocationException
when() requires as argument which has to be 'a method call on a mock'我尝试了两种不同的方法,其中一种是创建模拟为def a = Mock(Provider<SomeObj>),但在这种情况下,我在运行后得到语法错误,问题与<>有关
最后一个想法就是使用注解
@Mock
Provider<SomeObj> a;并像以前一样使用when/then,在这种情况下,它工作得很好。你知道firt idea为什么不正确吗?
发布于 2021-01-19 21:58:33
很明显我是个笨蛋。问题是因为我使用了Mockito api。不是spock模拟api。
它应该看起来像这样:
Provider<SomeOjb> a = Mock()
def setup(){
SomeOjb obj = new SomeObj();
a.get() >> obj
}https://stackoverflow.com/questions/65792059
复制相似问题