Ricerca…


introduzione

A volte hai un test che devi eseguire più volte, ogni volta con dati diversi. La parametrizzazione del test ti consente di farlo in modo semplice e manutenibile.

Sintassi

  • @RunWith (Parameterized.class) // annotazione per la classe di test

    @ Parametri // annotazione per i dati

Osservazioni

Un vantaggio nell'utilizzo dei parametri è che se un set di dati fallisce, l'esecuzione passerà al set successivo di dati invece di interrompere l'intero test.

Utilizzo di un costruttore

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 () fornite i dati da utilizzare nei test. Junit eseguirà l'iterazione dei dati ed eseguirà il test con ciascun set di dati.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow