Sök…


Introduktion

Ibland har du ett test som du behöver köra flera gånger, varje gång med olika data. Parameterisering av testet gör att du kan göra detta på ett enkelt och underhållbart sätt.

Syntax

  • @RunWith (Parameterized.class) // kommentar för testklassen

    @ Parametrar // kommentar för data

Anmärkningar

En fördel med att använda parametrar är att om en uppsättning data misslyckas, kommer exekveringen bara att flytta till nästa uppsättning data istället för att stoppa hela testet.

Använda en konstruktör

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

I data () tillhandahåller du de data som ska användas i testerna. Junit kommer att uppdateras genom data och köra testet med varje uppsättning data.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow