是否可以在具有固定执行顺序的其他一些测试之间执行多个嵌套测试?
例如
@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;
}
}
我知道,单元测试通常应该是无状态的,但在这种情况下,如果我可以按固定顺序重用状态,我可以节省大量执行时间。
最佳答案
没有。嵌套类中的测试总是在封闭类中的测试之后执行。这是无法改变的。
测试方法的顺序仅适用于单个测试类中的方法。
关于java - JUnit 5 : Specify execution order for nested tests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55476069/