现在要为Java学习哪个UnitTest框架?[已关闭]

2022-09-04 23:54:19

虽然我已经用Java编程了大约3年以上(不是日常的,但至少我了解基础知识),但还没有真正进入单元测试领域......

我现在的工作更加面向测试/问题分析,所以我认为一个好的Java单元测试框架对这个角色会很有帮助。

显然,在我的团队中没有关于使用哪个框架的正式规则。因此,只是想知道,作为初学者,哪个框架是快速入门的好框架?

朱尼特?

TestNG?

还是别的什么?

编辑:与亚马逊上的TestNG相比,JUnit似乎有更多的印刷书籍作为参考。但我现在还不知道它们在Java行业的受欢迎程度/趋势。


答案 1

我是TestNG的创建者和“下一代测试”一书的作者,所以这里有一些(明显有偏见的)想法。

对于功能(或端到端/集成/系统,无论您喜欢什么术语)测试,TestNG提供了一些JUnit没有的功能,用户发现这些功能非常有用:

  • 组。编译完测试后,您可以要求TestNG运行所有“前端”测试,或者“快速”,“慢速”,“数据库”等...

  • 支持多线程测试。这有两种不同的含义:

1)您可以告诉TestNG在您定义的线程池中同时运行所有测试(XML文件中的一行更改)。这是非常可配置的,因此非多线程测试仍然可以在单线程中运行。

2)你可以告诉TestNG从p线程调用你的测试方法n次。这使您可以很好地了解正在测试的代码的线程安全性。

  • 测试依赖关系和确定性排序。这对于集成测试非常有用,在集成测试中,经常会看到需要先验测试方法才能成功才能运行的测试方法。由于这个特定原因,TestNG在Selenium社区中非常受欢迎(“如果登录测试失败,请不要打扰测试我网站的此页面”)。

测试依赖性的另一个直接优点是TestNG可以告诉你“1个方法失败,跳过了99个方法”,这比“100个方法失败”更准确。

TestNG具有许多其他功能,我很乐意在这里或我们的邮件列表(http://groups.google.com/group/testng-users)上回答问题。


答案 2

我会用Unitils学习TestNG。一直满足我的所有需求。添加 XMLUnit 和 DBUnit,您应该在很长一段时间内安顿下来。


推荐