繁体   English   中英

JUnit测试理论失败了

[英]JUnit test Theory fails assumption

我正在实现一个JUnit测试(版本4.11),它将使用不同的参数运行几次。 因此我使用JUnit Theory类。 这就是我实现测试的方式:

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示例 ,没有必要定义一个假设。

我错过了什么?

FWIW我认为这是因为doTest()的参数与你在@DataPoints中定义的参数不匹配 - getData()的3D数组和doTest()的两个1D数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM