加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – JUnit测试理论失败的假设

发布时间:2020-12-15 02:14:44 所属栏目:Java 来源:网络整理
导读:我正在实现一个JUnit测试(版本4.11),它将使用不同的参数运行几次.因此我使用JUnit Theory类.这就是我实现测试的方式: import org.junit.BeforeClass;import org.junit.runner.RunWith;import org.junit.experimental.theories.DataPoints;import org.junit.
我正在实现一个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: Never found parameters that satisfied method
assumptions. Violated assumptions: [ ]

我没有定义任何假设,根据这个oracle example,没有必要定义一个假设.

我错过了什么?

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读