Testing on the JVM with JUnit5

JUnit 5 is the next generation of JUnit. The goal is to create an up-to-date foundation for developer-side testing on the JVM. This includes focusing on Java 8 and above, as well as enabling many different styles of testing.

JUnit 5 is now composed of the JUnit Platform, JUnit Jupiter and JUnit Vintage. The JUnit Platform serves as a foundation for launching testing frameworks on the JVM. It also defines the TestEngine API for developing a testing framework that runs on the platform. Furthermore, the platform provides a Console Launcher to launch the platform from the command line and build plugins for Gradle and Maven as well as a JUnit 4 based Runner for running any TestEngine on the platform. JUnit Jupiter is the combination of the new programming model and extension model for writing tests and extensions in JUnit 5. The Jupiter sub-project provides a TestEngine for running Jupiter based tests on the platform. JUnit Vintage provides a TestEngine for running JUnit 3 and JUnit 4 based tests on the platform.

This video starts with an overview of the inspiration for and architecture of JUnit 5, from launchers to test engines, and then takes the audience on a live coding tour, covering support for tagging, custom display names, dependency injection, repeated tests, parameterized tests, conditional test execution, lambda expressions for assertions, assumptions, dynamic tests, and implementing tests via interface default methods (a.k.a., testing traits). The presentation goes over the extension model in JUnit Jupiter, discussing how to author and register extensions for conditional tests, parameter resolution (a.k.a., dependency injection), lifecycle callbacks, and more. Last, it quickly showcases the new JUnit Jupiter support in Spring Framework 5.0.

Video producer: http://www.oracle.com/technetwork/index.html