现在要为Java学习哪个UnitTest框架?

Mic*_*Mao 12 java junit testng unit-testing

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

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

显然,没有关于在我的团队中使用哪个框架的正式规则.所以只是想知道,作为初学者,哪个框架很快就能开始?

Junit的?

TestNG的?

或者是其他东西?

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

Ced*_*ust 31

我是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)回答问题.


Geo*_*uba 6

我会用Unitils学习TestNG .始终满足我的所有需求.添加XMLUnit和DBUnit,你应该解决很长一段时间.

  • +1提及Unitils.以前我不知道的有趣项目. (2认同)