我们之前使用JUnit 4,但是在测试分组方面遇到了一些问题。在集成测试方面,我们有运行顺序的问题。我们于2016年2月迁移到了TestNG。
现在我们正在为项目启动一个新的独立模块,我们团队中的一部分人希望使用JUnit 5。我相信它比4要好得多(有一些新的重要功能),但我也看到了一些问题。
我不想使用JUnit 5,因为我担心在我们的新应用程序中可能会出现问题,因为我有使用4的经验。但我必须更加灵活地考虑团队的需求,在做出决定之前,我需要听取有使用JUnit 5经验的用户的建议。
TestNG的目标不仅仅局限于单元测试,它还可覆盖更广泛的测试需求,如场景测试、集成测试、依赖性测试、排序、并行执行等。但是这些特性在JUnit 5中并不被支持。
JUnit 5团队已经在其路线图中考虑到了上述项目,但他们正在扩展一个单元测试框架以支持更广泛的测试需求。让我们看看新的Junit 5版本如何与TestNG相比解决更广泛的测试需求。
对于基于Spring的应用程序来说,JUnit最适合进行单元测试和集成测试,因为它是默认的测试框架,而Spring提供了许多带有Mockito的测试API。
对于一般测试和Web自动化(Selenium)- TestNG是事实上的选择。
JUnit 5引入了许多新功能,目前Intellij IDEA支持JUnit 5。
查看有关集成的文章:在IntelliJ IDEA中使用JUnit 5。
现在有一些有用的注释,例如:
@Tag
用于声明标签以筛选测试,可以在类或方法级别上使用;类似于TestNG中的测试组或JUnit 4中的类别
@DisplayName
为测试类或测试方法声明自定义显示名称
了解更多信息:JUnit 5用户指南
TestNG
是否提供您所需的一切?如果是的话,请坚持使用它。JUnit 5仍然处于“正在进行中”的状态,尚不支持JUnit 4的某些功能。 - Alexei Osipov