Ausführung eines Tests (@Rule) oder einer Testklasse (@ClassRule) • Sehr gute Kombinierbarkeit • Aber: Oft nicht mächtig genug, um auf die Testausführung auf unterschiedlichen Ebenen zu beeinflussen (z.B. Spring)
(Jupiter API) 2. Erweiterbarer Mechanismus zum Auffinden und Ausführen von Tests (Test Engine SPI) 3. Eine API für die Testausführung durch Tools (Launcher API)
seit 2016.2 • Eclipse-Unterstützung gibt es auf einem Branch • Übergangslösung für andere IDEs: JUnitPlatform Runner • Gradle/Maven: Plugin/Provider verfügbar • siehe https://github.com/junit-team/junit5-samples • Manuell: ConsoleLauncher
Extensions • An Testklassen oder -methoden • Gleichzeitige Registrierung beliebig vieler Extensions wird unterstützt • Kann auch als Meta-Annotation verwendet werden!
Registrierte ParameterResolvers sind dafür zuständig, die Parameter aufzulösen • Beispiele: TestInfoParameterResolver, TestReporterParameterResolver, MockitoExtension
Framework Features • Constructor und Method Injection via @Autowired, @Qualifier, @Value • upREST https://github.com/selesy/uprest • Declarative Tests für REST APIs