【发布时间】:2021-01-19 13:02:34
【问题描述】:
我目前正尝试在我的单元测试中使用 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,在这种情况下它工作得很好。 知道为什么第一个想法不正确吗?
【问题讨论】:
标签: unit-testing groovy mockito spock