Um Hamcrest mit JUnit 4 zu verwenden, verwenden wir eine assertThat()
Funktion. JUnit 5 wird jedoch keine assertThat()
Funktion mehr haben. Wie verwende ich Hamcrest ohne assertThat()
?Wie verwende ich Hamcrest mit JUnit 5, wenn JUnit 5 keine assertThat() -Funktion hat?
Antwort
Sie müssen sicherstellen, dass Hamcrest im Klassenpfad enthalten ist und dann die von Hamcrest bereitgestellte assertThat() -Funktion verwenden. Aus den aktuellen JUnit 5 User Guide - Writing Tests Assertions,
JUnit Jupiters org.junit.jupiter.Assertions Klasse einen assertThat() -Methode wie die nicht in org.junit.Assert Klasse JUnit 4 ist gefunden bereitzustellen, die ein hamcrest Matcher akzeptiert. Stattdessen werden die Entwickler dazu aufgefordert, die integrierte Unterstützung für Matchierer zu verwenden, die von Drittanbieter-Assertion-Bibliotheken bereitgestellt werden.
Das folgende Beispiel zeigt, wie die assertThat() - Unterstützung von Hamcrest in einem JUnit Jupiter-Test verwendet wird. Solange die Hamcrest-Bibliothek dem Klassenpfad hinzugefügt wurde, können Sie die Methoden wie assertThat(), is() und equalTo() statisch importieren und dann in Tests wie in der assertWithHamcrestMatcher() - Methode weiter unten verwenden.
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)));
}
}
Natürlich Legacy-Tests auf der Basis der JUnit 4 Programmiermodell kann weiterhin org.junit.Assert # assertThat verwenden.“
- 1. Wie verwende ich JUnit assertThat korrekt?
- 2. Eclipse JUnit 5 Unterstützung
- 3. JUnit 5 vs TestNG
- 4. Wie vergleiche ich Doppelzimmer mit JUnit und Hamcrest?
- 5. Gibt es eine Version von JUnit assertThat, die die Hamcrest Funktion 'describeMismatch' verwendet?
- 6. Junit und Hamcrest Deklaration
- 7. Wie benutze ich HamCrest Matcher mit jUnit auf Android?
- 8. Wie führe ich JUnit 5 @Tag Tests mit Ant aus?
- 9. Wie Methode Signatur zu definieren, wenn eine Funktion in Java vorbei - JUNIT mit hamcrest schlägt
- 10. JUnit 5: Wie wird eine Ausnahme ausgelöst?
- 11. benutzerdefinierte Fehlermeldung für assertThat() in Junit?
- 12. JUnit assertThat: Das Objekt überprüfen gleich String
- 13. JUnit 5 und Spring Framework 4.3.x
- 14. Wie erstelle ich einen HTML-Bericht für JUnit 5 Tests?
- 15. Java Spring: JUnit Hamcrest: Erwartete Sammlung
- 16. Upgrade von JUnit 4 auf JUnit 5 in intellij mit Gradle
- 17. JUnit 5 unter Gradle mit mehreren Source-Sets
- 18. Wie zu behaupten, dass eine Liste mindestens n Elemente hat, die als x größer sind (mit hamcrest in junit)
- 19. In JUnit 5, wie Code vor allen Tests ausgeführt wird
- 20. JUnit TestClass erkennt keine Klasse
- 21. Was entspricht in JUnit 5 ExternalResource und TemporaryFolder?
- 22. Wie wird empfohlen, Hamcrest in Eclipse JUnit zu integrieren?
- 23. todsichere ist nicht richtig erfasst Junit 5 Tests
- 24. Gradle Projekt läuft jUnit 5 Tests in IntelliJ
- 25. Mit jUnit 4.12 und Hamcrest 1.3, wie kann ich behaupten, dass eine Funktion eine von zwei Ganzzahlen zurückgibt?
- 26. Wie verwende ich JUnitPerf mit JWebUnit und JUnit 4?
- 27. Order of Argument in beiden Junit und hamcrest
- 28. Android JUnit Testing, kann nicht aufgelöst werden (boolean) in assertThat?
- 29. JUnit Spring mit xml Keine Annotation konnte keine Beans laden
- 30. Wie schreibe ich JUnit Tests?
Was bläst mein Geist ist,' assertThat' war sollte die neue Art sein, alle Behauptungen zu machen, und plötzlich kommt JUnit 5 heraus und hat irgendwie noch alle Legacy-Assert-Methoden, aber hat auch die einzige moderne Version entfernt. Sie waren bereits dazu verpflichtet, die API zu brechen. Ich glaube, sie hätten wirklich dorthin gehen und alle redundanten Assertionsmethoden entfernen können Ich dachte, dass es vielleicht für die Bequemlichkeit der Migration war, aber nein, die Reihenfolge der Parameter ist nicht gleich. – Trejkaz