Sök…


Syntax

  • @FixMethodOrder // Kör test med standardmetodsorterare
  • @FixMethodOrder (MethodSorters) // Kör test med MethodSorter associerat med MethodSorters enum.

Standardorder

Använd annotationen - @FixMethodOrder(MethodSorters.DEFAULT) . Detta kör alla test inom klassen i en deterministisk och något förutsägbar ordning. Implementeringen har metodnamnen och jämför dem. I scenariot med ett slips sorteras det efter leksikografisk ordning.

Kodssegment nedan taget från 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);
}

Exempel

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

    @Test
    public void testB() {}

    @Test
    public void testC() {}
}

Anta att hascher för testA , testB och testC är 3, 2 respektive 1. Då är exekveringsordern

  1. testC
  2. testB
  3. TESTA

Anta att hascher för alla test är desamma. Eftersom alla hascher är desamma, baseras exekveringsorder på leksikografisk ordning. Exekveringsorder är

  1. TESTA
  2. testB
  3. testC

Lexikografisk ordning

Använd annotationen @FixMethodOrder med metodsorteraren MethodSorters.NAME_ASCENDING . Detta kör alla tester inom klassen i en deterministisk och förutsägbar ordning. Implementeringen jämför metodnamnen och i fallet med jämföra jämförs metodernas toString() .

Kodssegment nedan taget från JUnit Github - MethodSorter.java

public int compare(Method m1, Method m2) {
    final int comparison = m1.getName().compareTo(m2.getName());
    if(comparison != 0) {
        return comparison;
    }
    return m1.toString().compareTo(m2.toString());
}

Exempel

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

    @Test
    public void testB() {}

    @Test
    public void testC() {}
}

Exekveringsorder är

  1. TESTA
  2. testB
  3. testC


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow