Heim > Java > javaLernprogramm > Hauptteil

Datengesteuertes Testen mit dem JUnit-Unit-Testing-Framework

WBOY
Freigeben: 2024-04-18 12:09:01
Original
702 Leute haben es durchsucht

JUnit Unit Testing Framework unterstützt datengesteuertes Testen und nutzt wiederverwendbare Datenquellen, um Testfälle dynamisch auszuführen. Zu den Schritten gehören: Erstellen Sie eine Testdatenquelle, z. B. eine CSV-Datei. Erstellen Sie eine Testklasse und geben Sie die Datenquelle mit @RunWith(Parameterized.class) und @Parameters an. Schreiben Sie Testmethoden und fügen Sie Daten mit @Test und @Parameter ein. Verwenden Sie parametrisierte Anmerkungen, um Datenquellen automatisch zu durchlaufen und Testdaten einzufügen.

Datengesteuertes Testen mit dem JUnit-Unit-Testing-Framework

Datengesteuertes Testen mit dem JUnit-Unit-Test-Framework

Datengesteuertes Testen ist eine automatisierte Testtechnik, die Testfälle dynamisch über wiederverwendbare Datenquellen ausführt. JUnit ist ein weit verbreitetes Java-Unit-Test-Framework, das Unterstützung für datengesteuerte Tests bietet.

Schritte

  1. Testdatenquelle erstellen

Erstellen Sie zunächst eine Klasse oder Textdatei zum Speichern der Testdaten. Kann CSV, JSON oder andere Formate verwenden. Beispiel:

// data.csv
name,age
John,25
Mary,30
Nach dem Login kopieren
  1. Erstellen Sie eine Testklasse

Erstellen Sie eine Testklasse für die zu testende Klasse und verwenden Sie die Annotation Parameterized, um den Datenquellenpfad anzugeben: 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"));
    }
}
Nach dem Login kopieren

Parameterized 注解将自动遍历数据源中的每一行,并使用 @Parameter 注解将值注入到测试方法中。

  1. 编写测试方法

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

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

实战案例

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

public class User {

    private String name;
    private int age;
    
    // getters and setters
}
Nach dem Login kopieren
@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());
    }
}
Nach dem Login kopieren

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

Parametrisiert Die Annotation durchläuft automatisch jede Zeile in der Datenquelle und fügt den Wert mithilfe der Annotation @Parameter in die Testmethode ein. 🎜
    🎜🎜Schreiben Sie eine Testmethode🎜🎜🎜🎜Verwenden Sie die Annotation @Test, um eine Testmethode zu schreiben und die darin eingefügten Daten zu verwenden: 🎜rrreee🎜🎜Praktischer Fall 🎜🎜🎜 Um datengesteuertes Testen in Aktion zu zeigen, testen wir eine einfache Benutzer-Klasse mit den Feldern name und alter: 🎜rrreeerrreee🎜Run After Beim Testen durchläuft JUnit automatisch jede Zeile in der Datei data.csv und führt die Methode testUser() mit diesen Werten aus. 🎜

Das obige ist der detaillierte Inhalt vonDatengesteuertes Testen mit dem JUnit-Unit-Testing-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage