JUnit 5

A 1-day course introducing JUnit 5's full feature set (including nesting, parameterization, parallelization, and more) and powerful extension mechanism, also addressing its interaction with and migration from JUnit 4

This course teaches Java developers who are already familiar with JUnit 4, TestNG, etc. everything they need to know to use JUnit 5 to its full effect. It starts with basic tests and advanced features for test organization, parameterization, and parallelization, before moving beyond to JUnit 5's underlying architecture and powerful extension model. The latter is particularly interesting for larger or very domain specific test code base as it allows tailoring test execution to its needs.

Every aspect is taught with theoretical introductions, practical exercises, and usage recommendations.

Java developers who want to improve their testing skills by adopting JUnit 5
Some experience in annotation-based Java test frameworks (e.g. JUnit 4 or TestNG)
1 day


After completing this course, participants will be able to:

  • use JUnit 5's powerful feature set to write readable and maintainable test code
  • create custom extensions to adapt JUnit to project-specific requirements
  • write JUnit 5 tests in JUnit-4-based code bases and run them side by side


  • simple tests with JUnit 5
  • organizing tests by nesting them
  • parameterizing and parallelizing tests
  • targeting tests at different operating systems and Java versions
  • configuring JUnit 5
  • extending JUnit 5 to fit your requirements
  • understanding JUnit 5's architecture
  • running JUnit 4 and JUnit 5 tests side by side
  • migrating tests from JUnit 4 to JUnit 5

Upcoming Public Sessions

While I mostly provide these courses in-house, there's the occasional public session that everybody can attend. None are planned now, but if you get in touch, I'll let you know when that changes.