TestNG + PowerMock 单元测试

本文详细介绍了TestNG和PowerMock在单元测试中的应用,包括TestNG的常用注解、PowerMock的模拟功能,以及如何进行静态方法、私有方法的模拟测试。通过实例展示了如何编写和使用单元测试,确保代码的正确性和覆盖率。
摘要由CSDN通过智能技术生成

在这里插入图片描述

单元测试(Unit Testing),是指对软件或项目中最小可测试单元进行正确性检验的测试工作。单元是人为规定最小可测试的功能模块,可以是一个模块,一个函数或者一个类。单元测试需要与模块开发进行隔离情况下进行测试。

在程序开发完成后,我们往往不能保证程序 100% 的正确,通过单元测试的编写,我们可以通过自动化的测试程序将我们的输入输出程序进行定义,通过断言来 Check 各个 Case 的结果,检测我们的程序。以提高程序的正确性,稳定性,可靠性,节省程序开发时间。我们在项目中主要用到的单元测试框架有 Spring-Boot-Test TestNG、PowerMock 等。

TestNG,即 Testing, Next Generation,下一代测试技术,是一套根据 JUnit 和 NUnit 思想而构建的利用注释来强化测试功能的一个测试框架,即可以用来做单元测试,也可以用来做集成测试。

PowerMock 也是一个单元测试模拟框架,它是在其它单元测试模拟框架的基础上做出的扩展。通过提供定制的类加载器以及一些字节码篡改技巧的应用,PowerMock 现了对静态方法、构造方法、私有方法以及 Final 方法的模拟支持,对静态初始化过程的移除等强大的功能。

常用注解

  1. TestNG 注解
    @BeforeSuite 在该套件的所有测试都运行在注释的方法之前,仅运行一次
    @AftereSuite 在该套件的所有测试都运行在注释方法之后,仅运行一次
    @BeforeClass 在调用当前类的第一个测试方法之前运行,注释方法仅运行一次
    @AftereClass 在调用当前类的第一个测试方法之后运行,注释方法仅运行一次
    @BeforeMethod 注释方法将在每个测试方法之前运行
    @AfterMethod 注释方法将在每个测试方法之后运行
    @BeforeTest 注释的方法将在属于test标签内的类的所有测试方法运行之前运行
    @AfterTest 注释的方法将在属于test标签内的类的所有测试方法运行之后运行
    @DataProvider 标记一种方法来提供测试方法的数据。注释方法必须返回一个Object [] [],其中每个Object []可以被分配给测试方法的参数列表。要从该DataProvider接收数据的@Test方法需要使用与此注释名称相等的dataProvider名称
    @Parameters 描述如何将参数传递给@Test方法 ;适用于 xml 方式的参数化方式传值
    @Test 将类或方法标记为测试的一部分,此标记若放在类上,则该类所有公共方法都将被作为测试方法
  2. PowerMock 注解
    @Mock 注解实际上是 Mockito.mock() 方法的缩写,我们只在测试类中使用它;
    @InjectMocks 主动将已存在的 mock 对象注入到 bean 中, 按名称注入, 但注入失败不会抛出异常;
    @Spy 封装一个真实的对象,以便可以像其他 mock 的对象一样追踪、设置对象的行为;
    示例代码
  3. 添加 pom.xml 依赖
    以 Spring-Boot 项目为例,首先我们需要添加 TestNG + ProwerMock 依赖依赖如下:
org.springframework.boot spring-boot-starter-test test org.test
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值