수색…


소개

때로는 서로 다른 데이터로 여러 번 실행해야하는 테스트가 있습니다. 테스트를 매개 변수화하면 쉽고 유지하기 쉬운 방법으로이 작업을 수행 할 수 있습니다.

통사론

  • @RunWith (Parameterized.class) // 테스트 클래스에 대한 주석

    @ Parameters // 데이터에 대한 주석

비고

매개 변수를 사용할 때의 한 가지 이점은 한 세트의 데이터가 실패하면 실행이 전체 테스트를 중지하는 대신 다음 데이터 세트로 이동한다는 것입니다.

생성자 사용하기

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

data ()에서는 테스트에 사용할 데이터를 제공합니다. Junit은 데이터를 반복하고 각 데이터 세트로 테스트를 실행합니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow