預設訂單

使用註釋 - @FixMethodOrder(MethodSorters.DEFAULT)。這將以確定性和可預測的順序執行類中的所有測試。實現雜湊方法名稱並比較它們。在平局的場景中,它按字典順序排序。

下面的程式碼段取自 JUnit Github - MethodSorter.java

public int compare(Method m1, Method m2) {
    int i1 = m1.getName().hashCode();
    int i2 = m2.getName().hashCode();
    if(i1 != i2) {
        return i1 < i2 ? -1 : 1;
    }
    return NAME_ASCENDING.compare(m1,m2);
}

@FixMethodOrder(MethodSorters.DEFAULT)
public class OrderedTest {
    @Test
    public void testA() {}

    @Test
    public void testB() {}

    @Test
    public void testC() {}
}

假設 testAtestBtestC 的雜湊值分別為 3,2 和 1。然後執行順序是

  1. TESTC
  2. TESTB
  3. 種皮

假設所有測試的雜湊都是相同的。由於所有雜湊值都相同,因此執行順序基於詞典順序。執行順序是

  1. 種皮
  2. TESTB
  3. TESTC