In der Regel soll ja nur eine assertion pro Testmethode enthalten sein. Manchmal gibt es aber doch sinnvolle UseCases, dann kann man die assertAll verwenden.
Die assertAll-Methode in JUnit 5 wird verwendet, um mehrere Assertions innerhalb einer Testmethode zu gruppieren.
Dies ist besonders nützlich, wenn Sie mehrere Bedingungen überprüfen möchten, unabhängig davon, ob eine davon fehlschlägt. Die assertAll-Methode wird alle Assertions ausführen, selbst wenn eine fehlschlägt, und alle Fehler aufzeichnen. Dies ermöglicht es, alle festgestellten Probleme in einer einzigen Testausführung zu erfassen, anstatt dass der Test bei der ersten fehlgeschlagenen Assertion sofort abgebrochen wird.
Hier sind mal zwei assertEquals die Fehlschlagen und unten im Trace, sieht man es auch:
Hier Beispiel Code mit der auch zeigt, wie man auf die Meta-Infos zugreifen kann. Hier der Methoden-Name der Testmethode:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
@DisplayName("Blockchain Test mit assertAll") @Tag("schnell") @Test void testMitAssertAll(TestInfo testInfo) { String name = "Blockchain"; int btc = 30; assertAll("Blockchain", () -> assertEquals("Blockchain", name, "Name der Blockchain stimmt nicht überein"), () -> assertEquals("soll fehlschlagen", testInfo.getTags()), () -> assertEquals(30, btc, "Btc stimmt nicht überein"), () -> assertEquals("soll fehlschalgen", testInfo.getDisplayName())); } |