美文网首页
TestNG的静态方法mock的步骤

TestNG的静态方法mock的步骤

作者: yuesf | 来源:发表于2019-07-21 10:44 被阅读0次

最近团队内部对程序中使用大量的静态方法,而公司要求要有sonar扫描覆盖率的,因为在大量使用静态方法的地方若不mock,则覆盖率达不到。于是网上很少的文章讲解对静态方法的mock,大多都是如何使用powermockJunit,一般对于privatepublic方法正常逻辑是有文章讲解,那么今天我就把静态方法覆盖的方式梳理了一下。避免每个人过来都来问口口相传,形成文档。

在Test方法中需要用到TimeUtil.java中的静态方法。示例Mock操作如下:

1.添加maven配置依赖

     <!-- 单元测试mock -->
     <dependency>
         <groupId>org.mockito</groupId>
         <artifactId>mockito-all</artifactId>
         <scope>test</scope>
     </dependency>
     <dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-core</artifactId>
         <scope>test</scope>
     </dependency>
     <dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-api-mockito</artifactId>
         <scope>test</scope>
     </dependency>
     <dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-module-testng</artifactId>
         <scope>test</scope>
     </dependency>
    
     <dependency>
         <groupId>org.testng</groupId>
         <artifactId>testng</artifactId>
         <scope>test</scope>
     </dependency>
     <!-- 单元测试 -->

2.在Test类添加以下注解

    @SuppressStaticInitializationFor("com.yuesf.utils.TimeUtil")
    @PowerMockIgnore("java.lang.*")
    @PrepareForTest(value = TimeUtil.class)
    public class SaleOrderBizImplTest {
    }   

3.Test类中添加以下方法

  @ObjectFactory
    public IObjectFactory getObjectFactory() {
        return new org.powermock.modules.testng.PowerMockObjectFactory();
    }
@BeforeClass(alwaysRun = true)
    public void setUp()  {
        MockitoAnnotations.initMocks(this);
}

4.在测试方法添加以下注解

    @PrepareForTest(TimeUtil.class)

示例

    @PrepareForTest(TimeUtil.class)
    @Test
    public void processOrderItemLabel() {
    }

验证结果:


eSHuPH.png

再次感谢您已看完全文,欢迎关注微信公众号猿码 ,您的关注我会持续更新文章!

相关文章

  • TestNG的静态方法mock的步骤

    最近团队内部对程序中使用大量的静态方法,而公司要求要有sonar扫描覆盖率的,因为在大量使用静态方法的地方若不mo...

  • Spock 配置

    技巧 Mock 静态方法 GroovyMock 也可以 mock 静态方法,但其只能 mock 由 Groovy ...

  • Mockito初级学习

    标签:mockito 使用Mockito来Mock对象 有两种方法来mock对象,1)使用静态方法: mock()...

  • python下数据mock示例

    mock非静态成员方法 1. 使用Mock类,将目标方法赋值为Mock(return_value=XXXX),返回...

  • Junit和Testng区别

    1.都有注解,但TestNG更丰富 2.TestNG的BeforeClass和AfterClass不需要方法为静态...

  • java中的mock工具-jmockit

    jmockit 标签(空格分隔): test mock 之前试过powermock,虽然可以mock 静态方法,但...

  • Jmockit(一): 入门

    1 pom配置 testng + jmockit,使用junit也可以 2 程序结构 三步走: 录制,mock方法...

  • 写在之前 接口自动化整体认知

    应用哪些技术? HttpClient、Mock、Mybatis、TestNG、SpringBoot、Git主要内容...

  • springboot静态方法mock

    1.pom文件添加maven依赖: 2.单元测试,在测试类上加以下几个注解: WebTTsUtil是我要mock的...

  • 如何使用Powermock对静态方法进行mock

      在平常工作过程中,总会设计些工具类,里面通常使用静态方法来实现。那么如何来对这些静态方法进行mock,以及如何...

网友评论

      本文标题:TestNG的静态方法mock的步骤

      本文链接:https://www.haomeiwen.com/subject/qgdmlctx.html