首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mockito/Spock MissingMethodInvocationException

Mockito/Spock MissingMethodInvocationException
EN

Stack Overflow用户
提问于 2021-01-19 21:02:35
回答 1查看 18关注 0票数 0

我目前正尝试在我的单元测试中使用spock而不是junit。但是我遇到了MissingMethodInvocationException的问题。

我在嘲笑Provider<T>.get(),如下所示

代码语言:javascript
复制
Provider<SomeOjb> a = Mock()
def setup(){
    SomeOjb obj = new SomeObj();
    Mockito.when(a.get()).thenReturn(obj)
}

但在运行它之后,我得到了

代码语言:javascript
复制
org.mockito.exceptions.misusing.MissingMethodInvocationException
when() requires as argument which has to be 'a method call on a mock'

我尝试了两种不同的方法,其中一种是创建模拟为def a = Mock(Provider<SomeObj>),但在这种情况下,我在运行后得到语法错误,问题与<>有关

最后一个想法就是使用注解

代码语言:javascript
复制
@Mock
Provider<SomeObj> a;

并像以前一样使用when/then,在这种情况下,它工作得很好。你知道firt idea为什么不正确吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-19 21:58:33

很明显我是个笨蛋。问题是因为我使用了Mockito api。不是spock模拟api。

它应该看起来像这样:

代码语言:javascript
复制
Provider<SomeOjb> a = Mock()
def setup(){
    SomeOjb obj = new SomeObj();
    a.get() >> obj
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65792059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档