单元测试 - Mockito - powermock - 异常测试

单元测试 - Mockito - powermock - 异常测试

特别说明

当前文章内容迁移中,如有问题,请提交 issues 谢谢~~

  1. 单元测试 - Mockito - powermock - 实例函数调用

  2. 单元测试 - Mockito - powermock - 静态方法

  3. 单元测试 - Mockito - powermock - 异常测试

  4. 单元测试 - Mockito - powermock - 内部私有函数

一. 引入 maven 坐标

<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-api-mockito</artifactId>
    <version>$&#123;powermock.version&#125;</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-core</artifactId>
    <version>$&#123;powermock.version&#125;</version>
    <scope>test</scope>
</dependency> 
<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-module-junit4</artifactId>
    <version>$&#123;powermock.version&#125;</version>
    <scope>test</scope>
 </dependency>

具体的版本,可去 maven 中心仓库自行查找自己想要的

二. Mock 异常

1. mock 异常的发生

Mockito.when(Mockito.anyObject())
        .thenThrow(new Exception());

或者使用

 Mockito.when(Mockito.anyObject())
        .thenThrow(Exception.class);

2. 对异常进行断言

1). 使用 @Test 注解

在测试类上加上注解,expected 中的异常为具体的 mock 异常。

@Test(expected = Exception.class)

2). 使用 try-catch

3). 使用 @Rule 结合 JUnitExpectedException

  • 声明全局变量,且为 public 类型

      @Rule
      public ExpectedException exception = ExpectedException.none();
  • 在调用方法前,使用断言

exception.expect(IOException.class);
参考文章
Prev:
深入理解 MyBatis - PooledDataSource
Next:
响应式编程 - RxJava - Disposable
Contents of this article
Contents of this article