java - 我是 Java 自动化测试的新手。我应该更喜欢哪个工具? JUnit 还是 TestNG?

标签 java unit-testing junit testng

我已经阅读了一些 JUnitTestNG 的比较,看起来 TestNG 有更多的配置选项。另一方面,JUnit 得到 IDE、构建工具和更多插件的更多支持。

我没有编写单元测试的经验。 我应该更喜欢哪种工具?

附言 我认为我的问题更像是:我应该尝试 TestNG,还是像其他人一样坚持使用 JUnit?

附言 我们开发的是web应用,所以我觉得选择的时候还要考虑到后面我们会用到Selenium来进行功能测试。

最佳答案

TestNG 的编写是为了克服 JUnit 3 的一些明显局限性。查看 Cedric 的 blog post或关于 TestNG site 的其他文章看看他的想法。

请注意,JUnit 3 的一些限制是设计的,TestNG 故意允许您执行 JUnit 设计者明确禁止的事情。

TestNG 相对于 JUnit 3 的最大优势在于它允许您使用注释来定义测试,而不是强制您扩展 JUnit 基类。 JUnit 4 现在也可以以相同的方式使用注释,缩小了差距。

TestNG 和 JUnit 之间最大的区别是 TestNG 允许您的测试相互依赖,并允许您通过测试注释表达这些依赖关系。相反,JUnit 强制所有测试相互独立。

当然,还有其他差异——TestNG 默认为 assertEquals(actual, expected, message) 而 JUnit 是 assertEquals(message, expected, actual) —— 但是这是最大的。

我会说:选择一个,然后尝试一下。写一些测试。两者都适用于 Selenium。两者都适用于 Ant 。两者都可以与 CruiseControl 或 Hudson 一起正常工作。学习编写良好的单元测试比学习一组特定的命令重要得多(无论如何它们非常相似)。

在我看来,TestNG 具有更多的功能和更少的限制,但这当然也给了您更多出错的机会。

关于java - 我是 Java 自动化测试的新手。我应该更喜欢哪个工具? JUnit 还是 TestNG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3767129/

相关文章:

php - Codeception RuntimeException 调用未定义的方法 FunctionalTester::amOnPage

android - 在 mockito 中创建 OkHttpClient 时如何解决 java.lang.AssertionError?

java - RunWith(PowerMockRunner.class) 不适用于包注释

java - 链式 API 调用中的 RxJava 错误处理

unit-testing - 在 Angular 中对 $sce.trustAsHtml 的输出进行单元测试

java - GWT 是否与应用程序引擎的 Multi-Tenancy 支持兼容

c# - 单元测试 : DateTime. 现在

spring - 带有 Spring 的 Junit - TestContextManager [错误] 在允许 TestExecutionListener 时捕获异常

java - 如何使用多个不同的输入文件自动运行java中的同一个类

java - 返回可变对象的好方法