4

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

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

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

PS我们是开发web应用的,所以我觉得选择也应该考虑到以后我们会使用Selenium进行功能测试。

4

7 回答 7

8

编写 TestNG 是为了克服 JUnit 3 的一些已知限制。查看 Cedric 的博客文章或TestNG 站点上的其他文章,了解他的想法。

请注意,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。两者都适用于蚂蚁。两者都适用于 CruiseControl 或 Hudson。学习编写好的单元测试比学习一组特定的命令重要得多(无论如何它们都非常相似)。

IMO,TestNG 拥有更多的权力和更少的限制,但这当然也给了你更多出错的机会。

于 2010-09-22T11:25:56.117 回答
3

如果这是您第一次,我会推荐 JUnit。

这是第一个,最受欢迎的。它有很好的文档记录,有很好的工具支持,并且是被翻译的隐喻——至少最初是——翻译成所有不同的语言(参见 xUnit 实现)。它应该适用于大多数项目,而且它是一个很好的了解工具。作为程序员,这将是一个很好的基准。

“替代品”还有其他特征——这就是为什么有替代品的原因——但通常它比其他任何事情都更重要的是风格问题。TestNG 可能有一些不同的特性,但 JUnit 也随着注释、替代匹配器等特性的发展而发展。

是的,时机成熟时,JUnit 将与 Selenium 一起正常工作。

于 2010-09-22T07:54:48.990 回答
0

TestNg 和 Unitils 的结合是无与伦比的..它足以满足您的所有要求..

于 2010-09-22T07:30:47.870 回答
0

我总是投票支持“和其他人一样”,因为:在大多数情况下,这种体验更有价值,因为有很多信息,而且,特别是对于 jUnit,它被移植到多种语言,所以这种体验将是“跨界的”平台'。

于 2010-09-22T07:32:37.183 回答
0

Junit 最受欢迎,它支持插件,所以使用它更好

于 2010-09-22T08:41:49.780 回答
0

JUnit 和 TestNG 都非常相似,一旦您了解其中一个,就很容易掌握另一个。

我使用 TestNG 的主要原因是用于测试组和测试依赖项。您可以将测试分配给不同的组,然后轻松运行组中的所有测试,或从组中排除某些测试。例如,如果我想隔离几个测试,我可以简单地将它们添加到一个测试组“fahd”,然后只运行这个组。测试依赖项允许您在依赖项测试失败时跳过测试。您可能认为这些功能不是很重要,但是一旦您使用它们,您会想知道没有它们您是如何生活的。

于 2010-09-22T08:49:26.853 回答
0

我是 JavaEE 开发人员。我们大量使用 JUnit 来测试我们的业务逻辑模块。它非常强大、灵活,我们在官方发布文档中使用他的 html 报告作为质量证明。

于 2010-09-22T09:33:21.780 回答