本文介绍了JUnit5:指定嵌套测试的执行顺序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以以固定的执行顺序在某些其他测试之间执行多个嵌套测试?
例如
@TestInstance(Lifecycle.PER_CLASS)
@TestMethodOrder(OrderAnnotation.class)
class MyTest {
private State state = State.ZERO;
@Test
@Order(1)
public void step1() throws IOException {
state = State.ONE;
}
@Order(2) // sth like this, however this annotation isn't allowed here
@Nested
class WhileInStateOne {
@Test
public void step2a {
Assumptions.assumeTrue(state == State.ONE);
// test something
}
@Test
public void step2b {
Assumptions.assumeTrue(state == State.ONE);
// test something else
}
}
@Test
@Order(3)
public void step3() throws IOException {
state = State.THREE;
}
}
我知道,单元测试通常应该是无状态的,但是在这种情况下,如果我可以按固定顺序重用状态,我可以节省大量执行时间。
推荐答案
否。嵌套类中的测试始终在封闭类中的测试之后执行。这是无法更改的。
测试方法的排序仅适用于单个测试类中的方法。
这篇关于JUnit5:指定嵌套测试的执行顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!