1

TestMethod1次のコードでは、でマークされたパラメーターを使用して実行したいと思います@Parameters

    @RunWith(Parameterized.class)
public class Foo{

private boolean input;
private boolean expected;

public Foo(boolean input, boolean expected{
this.input=input;
this.expected=expected;
}

@Parameters
public static List<Object[]> data() {
        return Arrays.asList(new Object[][]{{false, false}, {false, false}});
    }

@Test
public void TestMethod1(){
assertEquals(expected, Baar.StaticMethod(input);
}

@Test
public void TestMethod2(){
assertEquals(expected, Baar.StaticMethod2(false);
}

問題は、junittes を実行すると、TestMethod1 と TestMethod2 の両方のメソッドがこれらのパラメーターで実行されることです。@Parameters でマークされたパラメーターを使用して TestMethod1 のみを実行するようにテストランナーに指示するにはどうすればよいですか?

4

1 に答える 1

0

純粋なjunitで許可されているかどうかはわかりませんが、プラグインはたくさんあります. あなたの場合(すべてのパラメータが事前にわかっている)、最も簡単な方法は、 zohhak でパラメータ化されたテストを行うことです:

@RunWith(ZohhakRunner.class)
public class TestMyClass {      

    @TestWith({
        "true, false".
        "false, true"
    })
    public void test1(int actual, int expected) { //test }

    @TestWith({
        "false, false".
        "true, true"
    })
    public void test2(int actual, int expected) { //test }

    @Test
    public void test3() { //test }
}

実行時にパラメーターを作成する必要がある場合 (生成、ファイルからの読み取りなど)、junit-dataproviderjunit-paramsなどを確認できます。

于 2015-09-23T11:10:18.053 に答える