The JUnit unit testing framework supports data-driven testing, using reusable data sources to dynamically run test cases. Steps include: Create a test data source, such as a CSV file. Create a test class and specify the data source using @RunWith(Parameterized.class) and @Parameters. Write test methods and inject data using @Test and @Parameter. Use Parameterized annotations to automatically traverse data sources and inject test data.
Using JUnit unit testing framework for data-driven testing
Data-driven testing is an automated testing technology that can be repeated through Use the data source to dynamically run test cases. JUnit is a widely used Java unit testing framework that provides support for data-driven testing.
Steps
First, create a class or text file to Store test data. Can use CSV, JSON or other formats. For example:
// data.csv name,age John,25 Mary,30
Create a test class for the class to be tested and specify it using the Parameterized
annotation Data source path:
@RunWith(Parameterized.class) public class DataDrivenTest { @Parameter public String name; @Parameter(1) public int age; @Parameters public static Iterable<Object[]> data() { return new CsvFileSource(new File("data.csv")); } }
Parameterized
annotation will automatically iterate through each row in the data source and inject the value into the test method using the @Parameter
annotation.
Write a test method using the @Test
annotation and use the injected data in it:
@Test public void testNameAndAge() { assertEquals("John", name); assertTrue(age == 25); }
Practical Case
To show data-driven testing in action, let’s test a simple User
class that contains name
and age
fields:
public class User { private String name; private int age; // getters and setters }
@RunWith(Parameterized.class) public class UserTest { @Parameter public String name; @Parameter(1) public int age; @Parameters public static Iterable<Object[]> data() { return new CsvFileSource(new File("data.csv")); } @Test public void testUser() { User user = new User(); user.setName(name); user.setAge(age); assertEquals(name, user.getName()); assertTrue(age == user.getAge()); } }
After running the test, JUnit will automatically iterate through each row in the data.csv
file and run ## with those values #testUser() method.
The above is the detailed content of Data-driven testing using the JUnit unit testing framework. For more information, please follow other related articles on the PHP Chinese website!