JUnit测试理论假设失败

问题描述 投票:4回答:1

我在执行一个JUnit测试(4.11版),将使用不同的参数多次运行。为此我使用JUnit理论课。这是我是如何实现的测试:

import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.experimental.theories.DataPoints;
import org.junit.experimental.theories.Theories;
import org.junit.experimental.theories.Theory;

@RunWith(Theories.class)
public class MyTest {

static double[][][] arrayData;

@BeforeClass
public static void setUpBeforeClass() throws Exception {
    double[] date_1 = {1, 2, 3};
    double[] expect_1 = {2, 4, 6};

    double[] date_2 = {10, 20, 30};
    double[] expect_2 = {20, 40, 60};

    arrayData = new double[][][] {
        {date_1, expect_1},
        {date_2, expect_2}
    };

    return;
}

@DataPoints
public static double[][][] getData() {
    return arrayData;
}

@Theory
public void doTest(double[] data, double[] expect) {
    // do some testing
    return;
}

}

每当我运行它,它甚至将doTest()之前测试失败。该错误消息是:

java.lang.AssertionError:发现没有满足方法假设参数。违反假设:[]

我没有定义任何的假设,并根据这个oracle example没有必要界定一个假设。

我在想什么?

java unit-testing junit4
1个回答
0
投票

FWIW我认为这是因为doTest()的参数不匹配您已在@DataPoints定义了什么 - 为的getData()以3D阵列,以及doTest两个一维数组()。

© www.soinside.com 2019 - 2024. All rights reserved.