我已经阅读了一些 JUnit 和 TestNG 的比较,看起来 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/