JUnit 5 is the next generation of the JUnit testing framework for Java applications. Unlike JUnit 4's monolithic design, JUnit 5 consists of three modular subprojects:
Architecture:
JUnit Platform: Foundation for launching testing frameworks on the JVM
JUnit Jupiter: Programming and extension model for writing tests and extensions
JUnit Vintage: Provides backward compatibility for JUnit 3 and 4 tests
Key Improvements from JUnit 4:
Java 8+ Requirement: Leverages lambda expressions and functional interfaces
Enhanced Annotations: More descriptive and flexible annotations
Dynamic Tests: Runtime test generation capabilities
Powerful Extension Model: Replaces runners with more flexible extensions
Better Assertions: Improved assertion methods with lambda support
Nested Test Organization: Better test structure with @Nested
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.