Ich schreibe JUnit4 Test, in dem ich die TemporaryFolder-Regel verwende. Es scheint, dass es sowohl mit @Rule als auch mit @ClassRule funktioniert. Was ist der Unterschied zwischen Junit @Rule und @ClassRule? Warum sollte ich einen und keinen anderen benutzen?Junit @Rule und @ClassRule
Antwort
Die Unterscheidung wird deutlich, wenn Sie mehr als eine Testmethode in einer Klasse haben.
Eine @ClassRule
hat ihre before()
Methode vor einer der Testmethoden ausgeführt. Dann werden alle Testmethoden ausgeführt und schließlich die Methode der Regel after()
. Wenn Sie also fünf Testmethoden in einer Klasse haben, werden before()
und after()
immer nur einmal ausgeführt.
@ClassRule
gilt für eine statische Methode und hat daher alle damit verbundenen Einschränkungen.
Ein @Rule
bewirkt, dass Tests über die Methode apply()
der Regel ausgeführt werden, die vor und nach dem Ausführen der Zielmethode Vorgänge ausführen kann. Wenn Sie fünf Testmethoden haben, wird die Regel apply()
fünfmal aufgerufen, als Wrapper für jede Methode.
Verwenden Sie @ClassRule
, um etwas einzurichten, das von allen Testmethoden wiederverwendet werden kann, wenn Sie dies in einer statischen Methode erreichen können.
Verwenden Sie @Rule
, um etwas einzurichten, das für jede Testmethode neu erstellt oder zurückgesetzt werden muss.
@Rule kann nicht vor einer @BeforeClass ausgeführt werden.
Während @ClassRule muss auf statische Methode sein.
- 1. JUnit @Before vs @Rule
- 2. Wie funktioniert Junit @Rule?
- 3. Verwenden Sie @ClassRule in Kotlin
- 4. Junit Externe Ressource @Rule Auftrag
- 5. Parametrisiertes Testen mit Mockito mit JUnit @Rule?
- 6. Verwenden von JUnit @Rule mit ScalaTest (z. B. TemporaryFolder)
- 7. mod_rewrite rule und setenv
- 8. Jena Reasoning und Rule Syntax
- 9. Wenden Sie '@Rule' nach jedem '@Test' und vor jedem '@After' in JUnit
- 10. Re-run fehlgeschlagen Test mit Junit
- 11. unique_ptr, benutzerdefinierter Deleter und Rule of Zero
- 12. htaccess rule umschreiben .htacces
- 13. Verwenden Sie Spring Data zufälliger (eingebetteter) Mongo-Port mit NoSQL JUnit @Rule
- 14. Cross-Browser CSS3 Rule
- 15. Apache Redirect Rule schreiben?
- 16. Mit Junit @Rule, expectMessage(), Matcher für multiple Ausnahme in 1 getesteten Methode
- 17. Kombinat erwartet und Timeout in Junit
- 18. Junit und Hamcrest Deklaration
- 19. JUnit und Cobertura
- 20. Junit-Ausgabe und OutOfMemoryError
- 21. Groovy und Junit
- 22. TestNG, Junit und log4j
- 23. scrapy create simple rule engine
- 24. web.config Redirect Rule - Match URL
- 25. Scrapy Json Rule SgmlLink Extractor
- 26. CodeEffects Rule Editor Schlüsselwörter Unterstützung
- 27. htaccess rule für search.php page
- 28. mod_security rule 981203 falsch positiv
- 29. Kotlin JUnit Regeln
- 30. Wie Rest Endpunkt in Scala mit jUnit