Chapter 8. Testing Framework Specifics

In the examples presented throughout this book, I have recommended embedding the calls to the Selenium WebDriver API in Java methods decorated with the annotation @Test using different unit testing frameworks: JUnit 4, JUnit 5 (alone or extended with Selenium-Jupiter), or TestNG. When executing regular tests, the difference in using one or another testing framework is minimal. Nevertheless, each testing framework has specific features for different use cases. This chapter summarizes some of these features to implement Selenium WebDriver tests. As usual, you can find the source code for this chapter in the examples repository for this book. You can use these examples to compare and choose the most convenient unit testing framework for your specific needs.

Parameterized Tests

A widespread feature commonly supported by unit testing frameworks is creating parameterized tests. This feature enables the execution of tests multiple times using different parameters. Although we can implement parameterized tests both with JUnit (4 and 5) and TestNG, there are significant differences among each implementation.

JUnit 4

We need to use a test runner called Parameterized for implementing parameterized tests in JUnit 4. A test runner in JUnit 4 is a Java class responsible for running tests. We decorate a Java class using the JUnit 4 annotation @RunWith to specify a test runner. Then, we need to use the JUnit 4 annotation @Parameters to decorate the method ...

Get Hands-On Selenium WebDriver with Java now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.