Zoeken…


Invoering

Soms heb je een test die je meerdere keren moet uitvoeren, elke keer met verschillende gegevens. Door de test te parametriseren, kunt u dit op een eenvoudige en onderhoudbare manier doen.

Syntaxis

  • @RunWith (Parameterized.class) // annotatie voor testklasse

    @ Parameters // annotatie voor gegevens

Opmerkingen

Een voordeel van het gebruik van parameters is dat als een set gegevens mislukt, de uitvoering gewoon naar de volgende set gegevens gaat in plaats van de hele test te stoppen.

Een constructor gebruiken

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 () geeft u de gegevens op die in de tests moeten worden gebruikt. Junit doorloopt de gegevens en voert de test uit met elke set gegevens.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow