本文介紹了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:指定嵌套測試的執行順序的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,