我在寫我使用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?