Aby używać Hamcrest z JUnit 4, używamy funkcji assertThat()
. Jednak JUnit 5 nie będzie już miał funkcji assertThat()
. Jak korzystać z Hamcrest bez numeru assertThat()
?Jak używać Hamcrest z JUnit 5, gdy JUnit 5 nie ma funkcji assertThat()?
Odpowiedz
Musisz upewnić się, że Hamcrest jest zawarty w ścieżce klas, a następnie użyć funkcji assertThat() dostarczonej przez Hamcrest. Z obecnego JUnit 5 User Guide - Writing Tests Assertions, org.junit.jupiter.Assertions klasy
jUnit Jupiter nie przewiduje metodę assertThat() jak ten znaleziony w jUnit 4'S org.junit.Assert klasy, które przyjmuje Hamcrest Matcher. Zamiast tego programiści są zachęcani do korzystania z wbudowanej obsługi dopasowań dostarczanych przez niezależnych bibliotek asercji.
Poniższy przykład ilustruje sposób użycia funkcji assertThat() firmy Hamcrest w teście JUnit Jupiter. Tak długo, jak biblioteka Hamcrest została dodana do ścieżki klasy, możesz statycznie importować metody , takie jak assertThat(), is(), i equalTo(), a następnie używać ich w testach jak w poniższej metodzie assertWithHamcrestMatcher().
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import org.junit.jupiter.api.Test;
class HamcrestAssertionDemo {
@Test
void assertWithHamcrestMatcher() {
assertThat(2 + 1, is(equalTo(3)));
}
}
Oczywiście starsze testy oparte na modelu JUnit 4 Programowanie może dalej korzystać org.junit.Assert # assertThat „.
- 1. JUnit 5 vs TestNG
- 2. deklaracja junit i hamcrest
- 3. Jak zdefiniować Method podpis przy przejściu do funkcji w Javie - JUnit z Hamcrest zawodzi
- 4. Jak utworzyć raport HTML dla testów JUnit 5?
- 5. Konfigurowanie gradle do używania JUnit, Mockito, Hamcrest i Espresso
- 6. Projekt Gradle działa jUnit 5 testów w IntelliJ
- 7. JUnit 5 - Pusty zestaw testów w IntelliJ IDEA przy użyciu JUnit Jupiter engine
- 8. Junit: mniej niż asercja?
- 9. Jak działa Junit @Rule?
- 10. Junit @AfterClass (nie statyczny)
- 11. Jak używać testów maven i jUnit?
- 12. Ant JUnit ClassNotFoundException
- 13. java.util.ConcurrentModificationException w testach JUnit
- 14. Nadużywanie hamcrest hasItems
- 15. Jak działa Cobertura z JUnit?
- 16. Jak używać "starych" zależności z ASP.NET 5
- 17. Jak używać najnowszego GCC z Xcode 5?
- 18. jak JUnit test IntentService
- 19. Różnice między JUnit 3 i JUnit 4
- 20. dlaczego MPMovieLoadState ma stan 5?
- 21. rejestrowanie testu Natychmiastowe JUnit z <junit> Ant zadanie
- 22. JUnit dziedziczenie testowe nie działa
- 23. Jak uzyskać wersję JUnit
- 24. Jak JUnit przetestować iteracyjnej
- 25. Junit @Rule i @ClassRule
- 26. Jak używać Hamcrest do sprawdzania elementów mapy
- 27. Nie można uruchomić jUnit z Eclipse
- 28. Junit Matcher dla komparatorów?
- 29. nie używając testu JUnit Wiosna
- 30. JUnit Testing Exceptions
Co dmucha mój umysł,' assertThat' było powinien to być nowy sposób wykonywania wszystkich twierdzeń, a następnie nagle JUnit 5 wychodzi i jakoś ma wszystkie dotychczasowe metody potwierdzania, ale także usunął jedyną nowoczesną metodę, która była już zdecydowana złamać API, więc " myślę, że mogliby naprawdę tam pojechać i usunąć wszystkie zbędne metody asercji tycznie pomyślałem, że może to dla wygody migracji, ale nie, kolejność parametrów nie jest nawet taka sama. – Trejkaz