单元测试框架 TestNG 和 Junit4的区别

本文对比了TestNG和JUnit4在自动化测试中的差异,包括@BeforeClass/@AfterClass注解、忽略测试、超时测试、异常测试、套件测试、参数化测试、依赖测试和并发测试等方面。TestNG在参数化、依赖测试和套件测试上更为强大,而JUnit4注重测试的隔离。建议在需要高级测试和复杂集成测试时选择TestNG。
摘要由CSDN通过智能技术生成

在自动化测试时,经常会用到TestNg 或 Junit 测试框架。那么它们之间有什么联系和区别,如何使用呢?在面试过程中也会经常被问到,结合网上一的些文章,做了以下总结。

TestNg主要用于单元测试和集成测试,它涵盖了 JUnit4 的全部功能,并且在参数化测试、依赖测试以及套件测试(组)方面功能上更加强大。那么TestNg与Junit4具体有哪些区别呢?

下面表中概括了JUnit 4和TestNG之间的功能比较。如下图所示 

注释/注解支持在JUnit 4和TestNG中是非常类似的。

特点 JUnit 4 TestNG
测试注释 @Test @Test
在套件中的所有测试运行之前运行 - @BeforeSuite
在套件中的所有测试运行之后运行 - @AfterSuite
测试之前运行 - @BeforeTest
测试之后运行 - @AfterTest
在调用属于任何这些组的第一个测试方法之前运行 - @BeforeGroups
在调用属于任何这些组的第一个测试方法之后运行 - @AfterGroups
在调用当前类的第一个测试方法之前运行 @BeforeClass @BeforeClass
在调用当前类的第一个测试方法之后运行 @AfterClass @AfterClass
在每个测试方法之前运行 @Before @BeforeMethod
在每个测试方法之后运行 @After @AfterMethod
忽略测试 @ignore @Test(enbale=false)
预期的异常 @Test(expected = ArithmeticException.class) @Test(expectedExceptions = ArithmeticException.class)
超时测试 @Test(timeout = 1000) @Test(timeOut = 1000)

1.在Junit 4 中,在方法上使用@BeforeClass和@AfterClass时,那么该测试方法则必须是静态方法。TestNG 被@BeforeClass 和@AfterClass注释的方法可以不写成static方法。


2. 在JUnit 4中,注释命名约定有点混乱,例如“Before”,“After”和“Expected”,我们并不真正了解“Before”和“After”之前的内容,以及要测试中的“预期” 方法。TestiNG更容易理解,它使用类似“BeforeMethod”,“AfterMethod”和“ExpectedException”就很明了。

3.Junit4做忽略测试时,用的是@Ingore,而TestNG则是在@Test注解上添加参数,如:@Test(enabled = false)

4.“超时测试”表示如果单元测试所花费的时间超过指定的毫秒数,则测试将会终止,并将其标记为失败,此功能在JUnit 4和TestNG中均可实现。

Junit4做超时测试时,使用如:@Test(timeout=100)其中o是小写。而TestNG使用如:@Test(timeOut=100)其中O是小写

 

5.“异常测试”是指从单元测试中抛出的异常。

Junit4做异常测试时,使用如:@Test(expected = ArithmeticException.class) 。

@Test(expected = ArithmeticException.class)
public void divisionWithException() {
  int i = 1/0;
}

而TestNg使用如:@Test(expectedExceptions = ArithmeticException.class) 

@Test(expectedExceptions = ArithmeticException.class)
public void divisionWithException() {
  int i = 1/0;
}

6.套

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值