我用这个maven线在我的项目上设置了mockito:
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.8.5</version>
<scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我没有使用@Mock注释的问题,但我无法访问和使用mockito方法,如:
when(someMock.someMethod()).thenReturn();
Run Code Online (Sandbox Code Playgroud)
Eclipse只是不识别它们.
请帮忙.
Jef*_*ica 29
尝试调用Mockito.when(foo.getBar()).thenReturn(baz)and Mockito.verify(foo).getBar(),它不依赖于静态导入.与@Mock注释不同,注释在技术上是一个类,when并且verify是Mockito类中的静态方法.
一旦你有了工作,然后尝试David提到的静态导入:
import static org.mockito.Mockito.when; // ...or...
import static org.mockito.Mockito.*; // ...with the caveat noted below.
Run Code Online (Sandbox Code Playgroud)
这将允许您在Mockito.when不指定Mockito类的情况下使用.您也可以使用通配符,像这样,但每次这样的SO回答的Java文档中使用通配符谨慎推荐-尤其是因为它可以打破,如果类似命名的静态方法是不断加入到后来的Mockito.
添加import org.mockito.*;是不够的,因为它会添加org.mockito包中的所有类,但不会添加方法org.mockito.Mockito.
特别是对于Eclipse,您可以通过将光标放在when部分Mockito.when并按Control-Shift-M("添加导入")来添加静态导入.您还可以添加org.mockito.Mockito到收藏夹("窗口">"首选项">"Java">"编辑器">"内容辅助">"收藏夹">"新类型"),这样即使您没有专门导入它们,所有Mockito静态方法也会显示在Ctrl-Space内容辅助提示中.(您可能还需要为org.mockito.Matchers,这在技术上是可行的org.mockito.Mockito通过继承来做到这一点,但在Eclipse中可能不会出现这个原因.)
| 归档时间: |
|
| 查看次数: |
18817 次 |
| 最近记录: |