- Isaac Newton
As described in Chapter 2, What's New in JUnit, the extension model of JUnit 5 allows us to extend the core functionality of JUnit 5 by a third party (tool vendor, developers, and so on). In the Jupiter extension model, an extension point is a callback interface that the extension implements and then registers (activates) in the JUnit 5 framework. As we will discover in this chapter, the JUnit 5 extension model can be used to provide seamless integration with existing third-party frameworks. Concretely, in this chapter, we review JUnit 5 extension for the following technologies:
- Mockito: Mock (test double) unit testing framework.
- Spring: A Java framework for building enterprise applications.
- Selenium: A testing framework to automate the navigation and assessment of web applications.
- Cucumber: Testing framework which allows us to create acceptance tests written following a Behavior-Driven Development (BDD) style.
- Docker: A software technology which allows us to pack and run any application as a lightweight and portable container.
Moreover, we discover that the JUnit 5 extension model is not the only way to integrate with the external world. Concretely, we study how JUnit 5 can be used together with the following:
- Android (mobile operating system based on Linux): We can run Jupiter tests in an Android project using a Gradle plugin for JUnit 5.
- REST (architectural style for designing distributed systems): We can interact and verify REST services simply using third-party libraries (such as REST Assured or WireMock), or using the fully integrated approach of Spring (tests together with the service implementation).