Since JUnit 4.0 was first released, a lot has happened in the world of Java. Unfortunately, JUnit 4 hasn't kept up with the times. JUnit 5 therefore aims to help shape the future of testing on the JVM, with a focus on Java 8, modularity, extensibility, and a modern programming API for authoring tests in Java.
This presentation will start off by providing attendees an overview of the inspiration for and architecture of JUnit 5, from launchers to test engines. Sam will then take the audience on an example-driven tour of the new programming model, highlighting support for dependency injection via flexible method signatures, conditional test execution, using lambda expressions and method references in assertions and assumptions, and implementing test/before/after methods via interface default methods.
To round off the discussion, Sam will present a deep dive into the new extension model in JUnit 5, demonstrating how to author and register extensions for conditional tests, method parameter resolution, lifecycle callbacks, and more.
YOU MAY ALSO LIKE:
- Testing with Spring: An Introduction (SkillsCast recorded in November 2014)
- How to teach IntelliJ IDEA to your juniors (Online Meetup on 2nd February 2023)
- Saving Costs with Pragmatic Serverless Java Architectures (SkillsCast recorded in November 2022)
- Preparing Apache Kafka for Scala 3 (SkillsCast recorded in October 2022)
JUnit 5 - Shaping the Future of Testing on the JVM
Sam Brannen is an enterprise Java developer with nearly 20 years of experience, a graduate of the Georgia Tech College of Computing, and co-founder of Swiftmind, a software consulting agency in Zurich, Switzerland. At Swiftmind Sam helps international clients achieve best practices in agile software development, architecture, design, implementation, and testing of enterprise Java applications using the Spring Framework, JUnit, and a plethora of open source technologies. In his consulting role, Sam most enjoys hard core software development, leading work shops, code reviews, coaching, and training developers.