サーチ…


前書き

時には、異なるデータを使用するたびに、複数回実行する必要があるテストがあります。テストをパラメータ化することで、簡単かつ保守的な方法でこれを行うことができます。

構文

  • @RunWith(Parameterized.class)//テストクラスのアノテーション

    @ Parameters //データのアノテーション

備考

パラメータを使用するメリットの1つは、1つのデータセットが失敗すると、テスト全体を停止するのではなく、次のデータセットに移動するだけです。

コンストラクタの使用

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