我正在尝试放入类似的语句
when(myDao.fetchTree(anyLong())).thenReturn(myTreeList);
我有进口
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。
Mockito的when返回类OngoingStubbing的对象。这个类有一个方法thenReturn(),这就是示例代码中调用的方法。无需额外导入。
when(myDao.fetchTree(anyLong())).thenReturn(myTreeList);
可以分解为
OngoingStubbing thing = when(myDao.fetchTree(anyLong()));
thing.thenReturn(myTreeList);
您只是在调用OngoingStubbing的thenReturn
方法。
如果您使用:就足够了
import static org.mockito.Mockito.*;
并移除其余部分。
您的问题:这是版本问题吗我会说不,这不是版本问题
如前所述,您应该
-
在测试中使用此代码创建最小测试
when(myDao.fetchTree(anyLong())).thenReturn(myTreeList);
-
从命令行运行此代码(不在STS或任何IDE或类似的东西中)
Q:为什么要从命令行运行它并避免使用IDE-s等?A: 因为有时您喜欢的IDE的代码解析器、检查器和验证器会报告代码中某些角落情况的误报。