TestNG和JUnit执行之间的区别

时间:2015-09-06 06:44:58

标签: java unit-testing junit testng

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

有人可以帮助我如何运作吗?我无法理解失败的传播。有没有人有一个明确解释这种差异的例子?

此致 SRINIVAS

1 个答案:

答案 0 :(得分:1)

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

参数化测试:

JUnit 对于参数化测试来说不是很方便,因为当您使用Will write debug info to file: stdout Running: gdb --interpreter=mi ./ex8 In directory: //Users//jimmy/workspace Process: <subprocess.Popen object at 0x1037a1110> pty: 41, tty: None, name: /var/folders/m2/7h27qgr17v1bqyphh7wq6tpw0000gn/T/tmpnvs3afgdb_stdout: broken pipe GDB session ended gdb_stderr: /bin/sh: gdb: command not found gdb_stderr: broken pipe 时,测试参数会从静态方法传递到测试类的构造函数中。很明显,每个类只能有一组参数。因此,在使用参数时,您被迫为每个测试用例创建单独的测试类。 Here is example of such test

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