-1

我有@Theroy类:

@Datapoints data1, data 2 ..... data 10 and,

@Theory
testMethod (data1, data2, data3) {
 //do testing
 exit from testMethod once testing is passed
}

我想只通过一次测试,而不是运行所有可能的数据点案例。

显然,我只想测试一次,一旦通过就退出另一个测试。

我不希望 System.exit() ... 因为我没有退出 jvm,但只有 @Theory 测试要退出。

Thanks
4

2 回答 2

1
boolean passed = false;

@Theory
public void testMethods(Object data){
    assumeTrue(!passed);

    // testing here

    passed = true;
}

使用 Assume 将跳过测试而不报告失败。

于 2014-03-27T11:33:57.697 回答
-1

对我没有用,我的情况是:

boolean actual = false;
@Theory(nullsAccepted = false)
public void overlapIfFirstRangeEndsAfterSecondBegins(final Date start1,
        final Date end1, final Date start2, final Date end2) {
    // Assume ranges are valid
    Assume.assumeTrue(!actual);
    assumeThat(start1, before(end1));
    assumeThat(start2, before(end2));

    assumeThat(start1, onOrBefore(start2));
    assumeThat(end1,   onOrAfter(start2));

    actual = dateRangesOverlap(start1, end1, start2, end2);
    //this actual will be TRUE once when test is to be passed...then test must exit
}

测试用例继续运行......

并且使用假设真使测试用例也失败了。谢谢

于 2014-03-27T15:47:16.997 回答