Rumah  >  Artikel  >  Java  >  Ujian dipacu data menggunakan rangka kerja ujian unit JUnit

Ujian dipacu data menggunakan rangka kerja ujian unit JUnit

WBOY
WBOYasal
2024-04-18 12:09:01693semak imbas

Rangka kerja ujian unit JUnit menyokong ujian dipacu data, menggunakan sumber data boleh guna semula untuk menjalankan kes ujian secara dinamik. Langkah-langkah termasuk: Buat sumber data ujian, seperti fail CSV. Buat kelas ujian dan nyatakan sumber data menggunakan @RunWith(Parameterized.class) dan @Parameters. Tulis kaedah ujian dan suntikan data menggunakan @Test dan @Parameter. Gunakan anotasi Berparameter untuk melintasi sumber data secara automatik dan menyuntik data ujian.

Ujian dipacu data menggunakan rangka kerja ujian unit JUnit

Pengujian dipacu data menggunakan rangka kerja ujian unit JUnit

Pengujian dipacu data ialah teknik ujian automatik yang menjalankan kes ujian secara dinamik melalui sumber data boleh guna semula. JUnit ialah rangka kerja ujian unit Java yang digunakan secara meluas yang menyediakan sokongan untuk ujian dipacu data.

Langkah

  1. Buat Sumber Data Ujian

Pertama, buat kelas atau fail teks untuk menyimpan data ujian. Boleh menggunakan CSV, JSON atau format lain. Contohnya:

// data.csv
name,age
John,25
Mary,30
  1. Buat kelas ujian

Buat kelas ujian untuk kelas yang akan diuji dan gunakan anotasi Parameterized untuk menentukan laluan sumber data: Parameterized 注解指定数据源路径:

@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 注解将自动遍历数据源中的每一行,并使用 @Parameter 注解将值注入到测试方法中。

  1. 编写测试方法

使用 @Test 注解编写测试方法,并在其中使用注入的数据:

@Test
public void testNameAndAge() {
    assertEquals("John", name);
    assertTrue(age == 25);
}

实战案例

为了展示数据驱动测试的实际应用,让我们测试一个简单的 User 类,其中包含 nameage 字段:

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());
    }
}

运行测试后,JUnit 将自动遍历 data.csv 文件中的每一行,并使用这些值运行 testUser()rrreee

Diparameterkan Anotasi akan berulang secara automatik melalui setiap baris dalam sumber data dan menyuntik nilai ke dalam kaedah ujian menggunakan anotasi @Parameter. 🎜
    🎜🎜Tulis kaedah ujian🎜🎜🎜🎜Gunakan anotasi @Test untuk menulis kaedah ujian dan gunakan data yang disuntik di dalamnya: 🎜rrreee🎜🎜Kes praktikal 🎜🎜🎜 Untuk menunjukkan ujian dipacu data dalam tindakan, mari kita uji kelas User mudah dengan medan name dan age: 🎜rrreeerrreee🎜Run After ujian, JUnit akan secara automatik melelar melalui setiap baris dalam fail data.csv dan menjalankan kaedah testUser() dengan nilai tersebut. 🎜

Atas ialah kandungan terperinci Ujian dipacu data menggunakan rangka kerja ujian unit JUnit. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn