文章目录
mock
Mockito 是一个强大的用于 Java 开发的模拟测试框架, 通过 Mockito 我们可以创建和配置 Mock 对象, 进而简化有外部依赖的类的测试.
使用 Mockito 的大致流程如下:
- 创建外部依赖的 Mock 对象, 然后将此 Mock 对象注入到测试类中.
- 执行测试代码.
- 校验测试代码是否执行正确.
如果我们需要测试一个方法,这个方法内部的依赖关系是下面这样的:
那么按照常规的方式去测试的话,就要创建对应的依赖对象,这样子进行测试非常麻烦的,而且太过于笨重了,这个时候我们的mock对象就可以登场了,mock对象具体来讲就是一个模拟你需要的对象的对象,使用mock对象模拟之后的依赖关系如下:
我们看到, BankDao, AccountService 和 AuthService 都被我们使用了虚拟的对象(Mock 对象) 来替换了, 因此我们就可以对 BankService 进行测试, 而不需要关注它的复杂的依赖了
mockiot基本使用
maven依赖
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.0.111-beta</version>
</dependency>
创建mock对象
/**
* mock基础使用
*/
@Test
public void test1() {
// 创建mock对象
List<String> mockList = Mockito.mock(List.class);
// 校验,如不通过会报错
Assert.assertTrue(mockList instanceof List);
}
@Test
public void test2() {
List mockList = Mockito.mock(ArrayList.class);
Assert.assertTrue(mockList instanceof List);
mockList.add("0");
mockList.add("1");
mockList.add("2");
// 设置mock返回指定的值
Mockito.when(mockList.size()).thenReturn(1000