Software testing has changed a lot since the first release of JUnit 4 in 2006. Since then, not only have Java and the JVM has evolved, but also our testing needs matured. We are not writing just unit tests anymore. Instead, in addition to verifying a single piece of code, software engineers and testers demand other kinds of tests, such as integration and end-to-end tests.
In addition, our expectations about testing frameworks have grown. Nowadays, we demand advanced capabilities for these frameworks, such as extensibility or modularity, to name a few. In this section, we discover the main limitations of JUnit 4, the vision of JUnit 5, and the community supporting its development.