尝试调用Mockito.when(foo.getBar()).thenReturn(baz)
and Mockito.verify(foo).getBar()
,它不会依赖静态导入。与@Mock
注解不同,注解在技术上是一个类,when
并且verify
是 Mockito 类上的静态方法。
一旦你有这个工作,然后尝试大卫提到的静态导入:
import static org.mockito.Mockito.when; // ...or...
import static org.mockito.Mockito.*; // ...with the caveat noted below.
这将允许您在Mockito.when
不指定Mockito
类的情况下使用。您也可以使用通配符,但是根据这个 SO 答案,Java 文档建议谨慎使用通配符——尤其是因为如果稍后将类似名称的静态方法添加到 Mockito 中,它可能会中断。
添加import org.mockito.*;
是不够的,因为这会添加org.mockito
包中的所有类,但不会添加org.mockito.Mockito
.
特别是对于 Eclipse,您可以通过将光标放在when
部件上Mockito.when
并按 Control-Shift-M(“添加导入”)来添加静态导入。您还可以添加org.mockito.Mockito
到您的收藏夹(Window > Preferences > Java > Editor > Content Assist > Favorites > New Type),以便所有 Mockito 静态方法都显示在您的 Ctrl-Space 内容辅助提示中,即使您没有专门导入它们。(您可能还想对 org.mockito.Matchers 执行此操作,它们在技术上可通过继承在 org.mockito.Mockito 上使用,但由于这个原因可能不会出现在 Eclipse 中。)