Suche…


Einführung

Manchmal haben Sie einen Test, den Sie mehrmals mit unterschiedlichen Daten ausführen müssen. Durch die Parametrierung des Tests können Sie dies auf einfache und wartbare Weise durchführen.

Syntax

  • @RunWith (Parameterized.class) // Annotation für die Testklasse

    @ Parameter // Annotation für Daten

Bemerkungen

Die Verwendung von Parametern hat den Vorteil, dass bei einem Fehler eines Datensatzes die Ausführung zum nächsten Datensatz weitergeht, anstatt den gesamten Test zu stoppen.

Verwenden eines Konstruktors

import static org.junit.Assert.assertThat;
import static org.hamcrest.CoreMatchers.is;
import java.util.*;
import org.junit.*;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

@RunWith(Parameterized.class)
public class SimpleParmeterizedTest {
    @Parameters
    public static Collection<Object[]> data(){
        return Arrays.asList(new Object[][]{
                {5, false}, {6, true}, {8, true}, {11, false}    
        });
    }
    
    private int input;
    private boolean expected;
    
    public SimpleParmeterizedTest(int input, boolean expected){
        this.input = input;
        this.expected = expected;
    }
    
    @Test
    public void testIsEven(){
        assertThat(isEven(input), is(expected));
    }
}

In data () geben Sie die Daten an, die in den Tests verwendet werden sollen. Junit durchläuft die Daten und führt den Test mit jedem Datensatz durch.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow