创建由 Mockito 模拟的对象
创建由 Mockito 模拟的对象有两种方法:
- 通过注释
- 通过模拟功能
通过注释:
使用 JUnit 测试运行器:
@RunWith(MockitoJUnitRunner.class)
public class FooTest {
@Mock
private Bar barMock;
// ...
}
你也可以使用 Mockito 的 JUnit @Rule
,它提供与 MockitoJUnitRunner
相同的功能,但不需要 @RunWith
测试运行器:
public class FooTest {
@Rule
public MockitoRule mockito = MockitoJUnit.rule();
@Mock
private Bar barMock;
// ...
}
如果你不能使用 @RunWith
或 @Rule
注释,你也可以按手初始化:
public class FooTest {
@Mock
private Bar barMock;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
}
// ...
}
通过模拟功能:
public class FooTest {
private Bar barMock = Mockito.mock(Bar.class);
// ...
}
由于类型擦除,你不能像上面那样模拟泛型类。你必须模拟基类并显式转换为正确的泛型类型:
public class FooTest {
private Bar<String> genericBarMock = (Bar<String>) Mockito.mock(Bar.class);
// ...
}