我在项目上使用此Maven行进行了Mockito设置:
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.8.5</version>
<scope>test</scope>
</dependency>
我使用@Mock
注释没有问题,但我无法访问和使用诸如:
when(someMock.someMethod()).thenReturn();
食物只是无法识别它们。
请帮助。
尝试调用Mockito.when(foo.getBar()).thenReturn(baz)
和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.
这将允许您在不指定Mockito
类的情况下使用Mockito.when
。您也可以使用通配符,但是这样一个回答Java文档建议谨慎使用通配符 - 尤其是因为如果以后将类似的静态方法添加到Mockito时,它可能会破裂。
添加import org.mockito.*;
是不够的,因为这在org.mockito
软件包中添加了所有类,但不是org.mockito.Mockito
上的方法。
特别是对于日食,您可以通过将光标放在Mockito.when
的when
部分并按CONTROL-SHIFT-M("添加导入")来添加静态导入。您还可以将org.mockito.Mockito
添加到您的收藏夹(窗口>首选项> Java>编辑器> content Assist>"收藏夹">"新类型"),以便在CTRL-Space内容辅助辅助提示提示中显示所有Mockito静态方法,即使您还没有具体导入它们。(您可能还想为org.mockito.matchers执行此操作,在org.mockito.mockito上可以通过继承获得,但由于这个原因可能不会出现在Eclipse中。)
kotlin语法 - 不要忘记````backticks''
import org.mockito.Mockito.`when`
`when`(someMock.someMethod()).thenReturn();