Mockito/Spock MissingMethodInvocationException
Mockito/Spock MissingMethodInvocationException
我目前正在尝试在我的单元测试中使用 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,在这种情况下它工作正常。
知道为什么第一个想法不正确吗?
显然我很笨。
问题是因为我使用了 Mockito api。不是 spock mock api.
它应该看起来像:
Provider<SomeOjb> a = Mock()
def setup(){
SomeOjb obj = new SomeObj();
a.get() >> obj
}
我目前正在尝试在我的单元测试中使用 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,在这种情况下它工作正常。 知道为什么第一个想法不正确吗?
显然我很笨。 问题是因为我使用了 Mockito api。不是 spock mock api.
它应该看起来像:
Provider<SomeOjb> a = Mock()
def setup(){
SomeOjb obj = new SomeObj();
a.get() >> obj
}