首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为mockito导入

为mockito导入
EN

Stack Overflow用户
提问于 2014-09-25 04:36:20
回答 3查看 9.6K关注 0票数 3

我试着把语句写成

代码语言:javascript
复制
when(myDao.fetchTree(anyLong())).thenReturn(myTreeList);

而且我有导入

代码语言:javascript
复制
import static org.mockito.Mockito.when;
import static org.mockito.Matchers.anyLong;
import static org.mockito.Matchers.thenReturn; //not importing

thenReturn的导入不是映射。这是一个版本问题吗?我使用的是Mockito 1.8.4。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-09-25 04:44:11

Mockito的when返回OngoingStubbing类的对象。这个类有一个thenReturn()方法,这是在示例代码中调用的方法。不需要额外的导入。

代码语言:javascript
复制
when(myDao.fetchTree(anyLong())).thenReturn(myTreeList);

可以被分解为

代码语言:javascript
复制
OngoingStubbing thing = when(myDao.fetchTree(anyLong()));
thing.thenReturn(myTreeList);

您只是在调用OngoingStubbing的thenReturn方法。

票数 4
EN

Stack Overflow用户

发布于 2014-09-25 04:39:04

如果您使用以下命令,应该足够了:

代码语言:javascript
复制
import static org.mockito.Mockito.*;

然后把剩下的去掉。

票数 4
EN

Stack Overflow用户

发布于 2014-09-25 18:54:14

你的问题:这是一个版本问题吗?我会说不,这不是版本问题。

正如前面所建议的,您应该

  • 在测试中使用此代码创建最小测试

从命令行(不是在STS或任何集成开发环境或类似的东西中) when(myDao.fetchTree(anyLong())).thenReturn(myTreeList);

  • run这段代码

问:为什么要从命令行运行它,并避免使用IDE-s等?答:因为有时你最喜欢的IDE的代码解析器、检查器和验证器会报告关于代码中某些特殊情况的误报。

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

https://stackoverflow.com/questions/26026018

复制
相关文章

相似问题

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