Migrating from JUnit 4 to JUnit 5: replacing rules with the extension model. Part 5

Migrating from JUnit 4 to JUnit 5: replacing rules with the extension model. Part 5

 

Listing 10 The JUnit5CustomExtensionTester class

JUnit5CustomExtensionTester class.PNG

 

In listing 10, we do the following:

 

  1. We extend JUnit5CustomExtensionTester with the CustomExtension class (1’).
  2. We create the myCustomRuleTest method and annotate it with @Test (2).

 

As the test class is extended with the CustomExtension class, the previously defined beforeEach and afterEach methods are executed before and after each test method respectively.

 

The result of the execution of this test is shown in figure 2. The effective execution of the test is surrounded by the additional messages.

 

execution of JUnit5CustomExtensionTester.png
Figure 2 The result of the execution of JUnit5CustomExtensionTester.

 

We remark the clear difference in code clarity and code length between JUnit 4 and JUnit 5. The JUnit 4 approach needs to work with three classes, the JUnit 5 approach needs to work with only two classes. The code to be executed before and after each test method is isolated into a dedicated method with a clear name. On the side of the testing class, you only need to annotate it with @ExtendWith.

Interested in JUnit?

Check out our trainings

Conclusions

  

This article has demonstrated the migration from the JUnit 4 rules to the JUnit 5 extensions through examples that have been detailed with comments. We have migrated code using exceptions rules, temporary rules and custom rules and we have contrasted the original code to the new JUnit 5 extensions approach, which is clearer and shorter. JUnit 4 rules are and will still be in use, because there is a large amount of already written tests. You may consider slowly migrating your code to the new JUnit 5 extensions approach.

Tudose, Florin-Catalin , Java Champion; Java Chapter Lead; Author at Pluralsight and Manning

Tudose, Florin-Catalin Tudose author linkedin

Java Champion; Java Chapter Lead; Author at Pluralsight and Manning

Tudose, Florin-Catalin , Java Champion; Java Chapter Lead; Author at Pluralsight and Manning

Tudose, Florin-Catalin Tudose author linkedin

Java Champion; Java Chapter Lead; Author at Pluralsight and Manning