Home > Java > javaTutorial > Data-driven testing using the JUnit unit testing framework

Data-driven testing using the JUnit unit testing framework

WBOY
Release: 2024-04-18 12:09:01
Original
730 people have browsed it

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.

Data-driven testing using the JUnit unit testing framework

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

  1. Create a test data source

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
Copy after login
  1. Create a test class

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"));
    }
}
Copy after login

Parameterized annotation will automatically iterate through each row in the data source and inject the value into the test method using the @Parameter annotation.

  1. Write a test method

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);
}
Copy after login

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
}
Copy after login
@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());
    }
}
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template