【问题标题】:Difference between TestNG and JUnit executionTestNG 和 JUnit 执行的区别
【发布时间】:2015-09-06 06:44:58
【问题描述】:

我正在了解 JUnit 和 TestNG 之间的差异以及 TestNG 相对于 Junit 的优势。我读到 JUnit 为它在该类中运行的每个测试方法创建了一个类的实例。这里的优点是一种测试方法中的错误不会传播到其他测试方法并使其他测试方法失败。另一方面,TestNG 支持测试集成类,这意味着默认情况下,无需为每个测试方法创建新的测试类实例。

有人可以帮助我了解这是如何工作的吗?我无法理解失败的传播。有没有人有一个例子可以清楚地解释这种差异?

问候 斯里尼瓦斯

【问题讨论】:

  • 我是 TestNg 和 JUnit 的用户(我更喜欢 TestNg),但不知道“测试集成类”是什么意思。是否可以更具体或包含您发现此比较的来源?

标签: java unit-testing junit testng


【解决方案1】:

我长期使用 JUnit 和 TestNg。我不确定你指的是什么问题。所以我提到了使 TestNg 成为我最喜欢的功能。否则它们是可比较的。

参数化测试:

JUnit 对于参数化测试不是很方便,因为当您使用 @Parametrized 时,测试参数会从静态方法传递到测试类的构造函数中。所以很明显,每个类只能有一组参数。因此,在使用参数时,您必须为每个测试用例创建单独的测试类。 Here is example of such test.

另一方面,TestNg 具有@DataProvider 的概念,它使您可以在一个测试类中拥有各种参数组。因此,您可以将各种测试与各种参数组合在一个测试类中。 Example here.

【讨论】:

  • JUnit 不会强制你使用它自己的参数化运行器。还有其他跑步者,如 JUnitParams 和 Burst 也可以使用。
  • 并拖入其他第三方项目只是为了进行良好的参数化?我更喜欢 TestNg,它内置了这种支持。
猜你喜欢
  • 2011-10-23
  • 2013-07-22
  • 2015-08-15
  • 2018-07-05
  • 1970-01-01
  • 2020-03-30
  • 2011-10-04
  • 2012-12-03
  • 1970-01-01
相关资源
最近更新 更多