View
4
Download
0
Category
Preview:
Citation preview
Runner• Komplette Ausführung kann angepasst werden.
• Aber: Es kann nur einen Runner pro Testklasse geben!
• Runner lassen sich nicht kombinieren
Rules• Neuer Erweiterungsmechanismus seit JUnit 4.7
• Wrapper um Ausführung eines Tests (@Rule) oder einer Testklasse (@ClassRule)
• Gute Kombinierbarkeit einzelner Rules
• Aber: Oft nicht mächtig genug, um auf die Testausführung auf unterschiedlichen Ebenen zu beeinflussen (z.B. Spring)
Vision• Wartbarkeit durch Modularisierung
• Erweiterbarkeit durch einheitliches Extension-Modell
• Erlaube sanfte Migration für JUnit 4 - Nutzer
• Technologie-Upgrade (>= Java 8)
Crowdfunding-Kampagne• Drei Firmen haben von vornherein zugesagt, jeweils
einen ihrer Entwickler für 6 Wochen an JUnit arbeiten zu lassen.
• Weitere Entwickler sollten über eine Crowdfunding-Kampagne finanziert werden.
Phase 2: Der Prototyp• Ziel: Lauffähige Version als Basis für Feedback aus
der Community
• Entwicklungsbeginn: im Anschluss an Kickoff
• Ende: 02.12.2015
Phase 3: Erste Alpha-Version• Ziel: Lessons Learned sowie Feedback aus der
Prototyp-Phase berücksichtigen
• Zum Großteil Neuimplementierung
• Released am 01.02.2016
Extension Points• ContainerExecutionCondition
• TestExecutionCondition
• InstancePostProcessor
• ExceptionHandlerExtensionPoint
• MethodParameterResolver
• BeforeEachExtensionPoint
• AfterEachExtensionPoint
• BeforeAllExtensionPoint
• AfterAllExtensionPoint
Dokumentation• User Guide:
http://junit-team.github.io/junit5/
• Beispiel-Projekte für Gradle und Maven:https://github.com/junit-team/junit5-samples
• Javadoc:https://junit.ci.cloudbees.com/job/JUnit5/javadoc/
Test Code hängt nur von junit5-api ab.
IDEs und Build Tools verwenden Launcher and Engine APIs und können Tests unabhängig vom benutzten Testing Framework ausführen.
Entkoppelte APIs
@API(Usage)• Alle öffentlichen Klassen sind mit der @API-
Annotation versehen.
• Die Usage gibt an, ob eine Klasse für die Verwendung von außen gedacht ist und, falls ja, wie stabil sie ist.
• Mögliche Werte: Deprecated, Internal, Experimental, Maintained, Stable
Was fehlt noch? (1/2)• Echte Integration in IDEs und Build Tools
• Dynamische Tests (z.B. für parametrisierte Tests, Quickcheck)
• Szenario-Tests (Aufteilung von Tests in Schritte mit Abhängigkeiten untereinander)
Was fehlt noch? (2/2)
• Optionale Parallelisierung der Testausführung
• Globale Extension-Registrierung?
• Erweiterbare Validierungsregeln für Annotationen etc.
Wanted: Feedback!
• GitHub Issues: https://github.com/junit-team/junit5/issues
• Twitter:https://twitter.com/junitteam
Recommended