默认订单
使用注释 - @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() {}
}
假设 testA
,testB
和 testC
的哈希值分别为 3,2 和 1。然后执行顺序是
- TESTC
- TESTB
- 种皮
假设所有测试的哈希都是相同的。由于所有哈希值都相同,因此执行顺序基于词典顺序。执行顺序是
- 种皮
- TESTB
- TESTC