JUnit的5:指定执行顺序嵌套测试

塞巴斯蒂安·S:

是否有可能在执行一个固定的执行顺序其他一些测试之间的几个嵌套的测试?

@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;
    }

}

我知道,单元测试一般应是无状态的,但是在这种情况下,我可以节省大量的执行时间,如果我能在一个固定的顺序重复使用的状态。

山姆Brannen:

在嵌套类号测试是始终执行后,在封闭类测试。这不能改变。

测试方法排序仅适用于单个测试类中的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章