我在写我使用TemporaryFolder规则的JUnit4测试。它似乎与@Rule和@ClassRule都可以正常工作。 Junit @Rule和@ClassRule有什么区别?为什么我应该使用一个而不是另一个?Junit @规则和@ClassRule
13
A
回答
23
当你在一个类中有多个测试方法时,区分就变得很清楚了。
A @ClassRule
在其中任何测试方法之前都运行其before()
方法。然后运行所有的测试方法,最后是规则的方法after()
。因此,如果您在班级中有五种测试方法,则before()
和after()
仍然每次只能运行一次。
@ClassRule
适用于静态方法,因此具有固有的所有限制。
A @Rule
导致通过规则的apply()
方法运行测试,该方法可以在运行目标方法之前和之后执行任何操作。如果您有五种测试方法,则将规则的apply()
称为五次,作为每种方法的包装。
使用@ClassRule
来设置一些可以被所有测试方法重用的东西,如果您可以在静态方法中实现这一点的话。
使用@Rule
可以为每种测试方法设置需要重新创建或重置的内容。
1
@Rule不能设置为在@BeforeClass之前运行。
虽然@ClassRule必须是静态方法。
相关问题
- 1. Junit @规则和Maven Checkstyle插件
- 2. JUnit规则TemporaryFolder - 竹错误
- 3. Junit外部资源@规则
- 4. JUnit的自定义规则
- 5. 在Kotlin中使用@ClassRule
- 6. 集成测试中的Autowire junit规则
- 7. 使用spring bean的JUnit规则
- 8. JUnit的规则TemporaryFolder随意抛出IOException
- 9. 重构来自测试的JUnit规则
- 10. FHIR资源规则; FHIR规则管理和规则定义
- 11. PowerMockRunner不适用JUnit ClassRules
- 12. ISAPI_Rewrite和Coldfusion规则
- 13. mod_rewrite规则和setenv
- 14. WF规则和CodeTypeReferenceExpression
- 15. Suhosin规则违规(340006和340007)
- 16. 业务规则违规和例外
- 17. MISRA违规规则10.1和枚举
- 18. Spring REST文档:如何将规则迁移到JUnit 5
- 19. 使用Pact JUnit规则与直接使用Pact DSL?
- 20. 如何配置适用于特定测试的JUnit规则
- 21. junit规则能解决我的问题吗?
- 22. 哪个PMD规则可以为JUnit测试激活?
- 23. 使用junit执行自定义Java声纳规则
- 24. 如何在AbstractTransactionalJUnit4SpringContextTests事务中执行junit规则?
- 25. PMD规则还需要应用Junit文件吗?
- 26. JUnit的:@规则的重写应用测试
- 27. 如何在测试套件中定义JUnit方法规则?
- 28. JUnit具有自定义回滚规则的常见设置
- 29. Eclipse调试器不带电源规则工作在JUnit
- 30. 如何将spring bean注入静态classRule?