本文介紹了JUnit5:指定嵌套測(cè)試的執(zhí)行順序的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
是否可以以固定的執(zhí)行順序在某些其他測(cè)試之間執(zhí)行多個(gè)嵌套測(cè)試?
例如
@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;
}
}
我知道,單元測(cè)試通常應(yīng)該是無(wú)狀態(tài)的,但是在這種情況下,如果我可以按固定順序重用狀態(tài),我可以節(jié)省大量執(zhí)行時(shí)間。
推薦答案
否。嵌套類中的測(cè)試始終在封閉類中的測(cè)試之后執(zhí)行。這是無(wú)法更改的。
測(cè)試方法的排序僅適用于單個(gè)測(cè)試類中的方法。
這篇關(guān)于JUnit5:指定嵌套測(cè)試的執(zhí)行順序的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,