首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何强制Mockito调用带参数的底层函数?

如何强制Mockito调用带参数的底层函数?
EN

Stack Overflow用户
提问于 2020-10-05 18:07:34
回答 2查看 41关注 0票数 1

我有这个:

代码语言:javascript
复制
class MyClass {
    private String foo;
    public getFoo() { return foo; }
    public setFoo(String foo) { this.foo = foo; }
}

现在,我想模拟一下它。

代码语言:javascript
复制
MyClass m = Mockito.mock(MyClass.class);
when(m.getFoo()).thenCallRealMethod();
when(m.setFoo(Mockito.anyString())).thenCallRealMethod(); 

但是这会给我一个编译错误:

代码语言:javascript
复制
'void' type not allowed here

使用thenCallRealMethod()似乎适用于没有参数的方法,但我不能让它使用参数。我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2020-10-05 18:11:11

由于void方法不能返回任何内容,包括mockito匹配器,因此您需要对这些内容使用不同的语法:

代码语言:javascript
复制
doCallRealMethod().when(m).setFoo(Mockito.anyString())
票数 2
EN

Stack Overflow用户

发布于 2020-10-05 18:14:53

你也可以窥探对象,这只会模拟已定义的方法

欲了解更多信息,请访问Use Mockito to mock some methods but not others

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64206541

复制
相关文章

相似问题

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