Piszę test JUnit4, w którym używam reguły TemporaryFolder. Wygląda na to, że działa dobrze zarówno z @Rule, jak i @ClassRule. Jaka jest różnica między Junit @Rule i @ClassRule? Dlaczego powinienem używać jednego, a nie innego?Junit @Rule i @ClassRule
Odpowiedz
Rozróżnienie staje się jasne, gdy masz więcej niż jedną metodę testową w klasie.
Metoda @ClassRule
jest uruchamiana przed każdą z metod testowania. Następnie uruchamiane są wszystkie metody testowe, a na końcu metoda reguły: after()
. Jeśli więc masz pięć metod testowania w klasie, before()
i after()
nadal będą uruchamiane tylko raz.
@ClassRule
dotyczy metody statycznej, a wraz z nią wszystkie związane z nią ograniczenia.
A @Rule
powoduje, że testy są uruchamiane za pomocą metody reguły apply()
, która może wykonywać operacje przed i po uruchomieniu metody docelowej. Jeśli masz pięć metod testowania, reguła o nazwie apply()
jest wywoływana pięć razy, jako otoczka dla każdej metody.
Użyj @ClassRule
, aby skonfigurować coś, co może być ponownie użyte przez wszystkie metody testowania, jeśli możesz to osiągnąć w metodzie statycznej.
Użyj opcji @Rule
, aby skonfigurować coś, co należy utworzyć od nowa lub zresetować dla każdej metody testowania.
@Rule nie można ustawić przed uruchomieniem @BeforeClass.
Podczas gdy @ClassRule musi być w statycznej metodzie.
- 1. Jak działa Junit @Rule?
- 2. Interakcja JUnit @Rule lifecycle z @Before
- 3. Dlaczego pola @Rule z adnotacjami w JUnit muszą być publiczne?
- 4. LaTeX \ rule napełnia linię
- 5. Różnice między JUnit 3 i JUnit 4
- 6. deklaracja junit i hamcrest
- 7. Java Rule Engine for Game AI
- 8. ANTLR: „brak dostępu atrybut zakresu Rule” problemu
- 9. Prolog lub (;) Rule Return Multiple Result
- 10. Netbeans i tworzenie testów JUnit
- 11. JUnit i Mocks in Liferay
- 12. Dlaczego nie jest usuwany tymczasowy folder JUnit?
- 13. Usuń lub Usuń Kalendarz Rule „Time Off Rule” poprzez wtyczki lub prostych aplikacji konsoli w C# dla CRM 2015
- 14. Jak zrobić JUnit wydrukować twierdzi i wyniki
- 15. dlaczego JUnit MethodRule i TestWatchman są przestarzałe?
- 16. Konfiguracja JMeter, JUnit i Spring Java
- 17. Jak używać testów maven i jUnit?
- 18. Gdzie zaczyna się deklaracja JUnit Matcher #?
- 19. Jak mogę użyć wyjątku JUnit ExpectedException w Scali?
- 20. Jak kontynuować test po wyrzuceniu JUnit ExpectedException?
- 21. Rule Engine - jak przechowywać reguły, aby uniknąć parsowania na edycji?
- 22. Mockito sprawdź po wyjątku Junit 4.10
- 23. JUnit - oczekiwany komunikat wyjątku wyrażenie regularne
- 24. JUnit Zasada TemporaryFolder arbitralnie rzuca IOException
- 25. JUnit test zawiesza się
- 26. JUnit opcjonalne/wymagane testy
- 27. Junit @AfterClass (nie statyczny)
- 28. Junit Matcher dla komparatorów?
- 29. Parse Junit xml file
- 30. Uruchamiaj testy JUnit równolegle