因爲設計緣由,JUnit不會特別指定測試方法調用的執行順序。到目前爲止,這些方法只是按照反射API返回的順序調用的。然而,使用JVM 的指令順序返回是一種不太明智的作法。由於JVM平臺也是沒有指定任何特定的順序,其實JDK 返回或多或少是有點隨機性的。固然,一個好的測試方法是不會假設有任何的順序的,可是,有些時候,咱們對業務測試會有這樣的需求的,不能隨機而來。畢竟,可預見的故障比某些平臺上的隨機故障要好,隨機意味着故障將有很大的不肯定和難排查性。 從JUnit4.11 開始,JUnit將默認使用一個肯定性的,但不可預測的順序。(MethodSorters.DEFAULT), 改變測試方法的執行順序,只須要用**@FixMethodOrder** 註解到你的測試類中,以及一個可用的測試方法排序方式就好, 如:測試
import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runners.MethodSorters; @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class TestMethodOrder { @Test public void testA() { System.out.println("first"); } @Test public void testB() { System.out.println("second"); } @Test public void testC() { System.out.println("third"); } }
執行結果:設計
first second third