PowerMockito.mockStatic(class) 模拟静态方法调用

文章目录PowerMockito.mockStatic(class) 模拟静态方法调用为什么要写单元测试引入依赖模拟工具类调用静态方法注解说明PowerMockito.mockStatic(class) 模拟静态方法调用为什么要写单元测试给我们重构的信心(give us the confidence to refactor)。一堆纠缠而无测试的代码你敢随便修改?好的单元测试就是文档 (documenting expected behavior)。几个实用的例子比文档让人感兴趣的多!引入依赖
摘要由CSDN通过智能技术生成

PowerMockito.mockStatic(class) 模拟静态方法调用

为什么要写单元测试

  1. 给我们重构的信心(give us the confidence to refactor)。一堆纠缠而无测试的代码你敢随便修改?
  2. 好的单元测试就是文档 (documenting expected behavior)。几个实用的例子比文档让人感兴趣的多!

引入依赖

        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>2.23.4</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-api-mockito2</artifactId>
            <version>2.0
  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 PowerMockito 模拟静态 void 方法可以分为以下几个步骤: 1. 添加 PowerMockito 的依赖库,例如: ``` <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-core</artifactId> <version>2.0.0</version> <scope>test</scope> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-junit4</artifactId> <version>2.0.0</version> <scope>test</scope> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito2</artifactId> <version>2.0.0</version> <scope>test</scope> </dependency> ``` 2. 使用 `@RunWith(PowerMockRunner.class)` 注解指定使用 PowerMockRunner 进行单元测试。 3. 使用 `@PrepareForTest` 注解指定需要被 mock 的类或者接口。 4. 使用 `PowerMockito.mockStatic()` 方法来 mock 静态方法。 5. 使用 `PowerMockito.doNothing()` 方法来指定静态 void 方法的行为。 下面是一个示例: ``` @RunWith(PowerMockRunner.class) @PrepareForTest({StaticClass.class}) public class StaticClassTest { @Test public void testStaticMethod() { PowerMockito.mockStatic(StaticClass.class); PowerMockito.doNothing().when(StaticClass.class); StaticClass.staticVoidMethod(); // 调用mock 的静态 void 方法 StaticClass.staticVoidMethod(); // 验证静态 void 方法被调用了两次 PowerMockito.verifyStatic(Mockito.times(2)); StaticClass.staticVoidMethod(); } } ``` 注意,这里使用了 `Mockito.times(2)` 来验证静态 void 方法被调用了两次。同时,为了避免与其他测试类的影响,建议在每个测试方法中都重新 mock 一次。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值