Junit 仅运行@Theory注释测试一次,直到通过
我的@Theroy课程为:Junit 仅运行@Theory注释测试一次,直到通过,junit,annotations,theory,exit,datapoint,Junit,Annotations,Theory,Exit,Datapoint,我的@Theroy课程为: @Datapoints data1, data 2 ..... data 10 and, @Theory testMethod (data1, data2, data3) { //do testing exit from testMethod once testing is passed } 我只想通过一次测试,但不想运行所有可能的数据点案例 显然,我只想测试一次,一旦通过,就退出到另一个测试 我不希望看到系统。退出()。。。因为我不是在退出jvm,而是在退出
@Datapoints data1, data 2 ..... data 10 and,
@Theory
testMethod (data1, data2, data3) {
//do testing
exit from testMethod once testing is passed
}
我只想通过一次测试,但不想运行所有可能的数据点案例
显然,我只想测试一次,一旦通过,就退出到另一个测试
我不希望看到系统。退出()。。。因为我不是在退出jvm,而是在退出@Theory测试
就是要退出
Thanks
使用“假定”,它将跳过测试而不报告失败。对我不起作用,我的情况是:
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
}
测试用例继续运行
使用assumeTrue也会使测试用例失败。
谢谢假设的工作方式是运行每个测试用例,但可能会被跳过。如果你的理论有4个参数,并且有10个或更多的数据点,这是一个非常大数量的可能的值组合传递给理论。与他们每个人都背道而驰的假设。我认为理论不是实现这一点的方法。您可能想考虑参数化。谢谢……这正是我所想的……在成功后,在所有的保证条件下,并且再次成功地在DATERangeSeRePopApple()中……这意味着第一个测试通过了,对……现在我想退出测试并继续另一个测试……看来理论在这里起了不好的作用。。。。
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
}