junit
Polecenie wykonania testu
Szukaj…
Składnia
- @FixMethodOrder // Uruchamia test przy użyciu domyślnego sortera metod
- @FixMethodOrder (MethodSorters) // Uruchamia test przy użyciu MethodSorter powiązanego z wyliczeniem MethodSorters.
Domyślne zamówienie
Użyj adnotacji - @FixMethodOrder(MethodSorters.DEFAULT)
. To uruchamia wszystkie testy w klasie w deterministycznej i dość przewidywalnej kolejności. Implementacja haszy nazwy metod i porównuje je. W przypadku remisu sortuje się według kolejności leksykograficznej.
Poniższy segment kodu pochodzi z 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);
}
Przykład
@FixMethodOrder(MethodSorters.DEFAULT)
public class OrderedTest {
@Test
public void testA() {}
@Test
public void testB() {}
@Test
public void testC() {}
}
Załóżmy, że skróty dla testA
, testB
i testC
wynoszą odpowiednio 3, 2 i 1. Zatem kolejność wykonania jest
- testC
- testB
- test A.
Załóżmy, że skróty dla wszystkich testów są takie same. Ponieważ wszystkie skróty są takie same, kolejność wykonywania jest oparta na kolejności leksykograficznej. Kolejność wykonania jest
- test A.
- testB
- testC
Porządek leksykograficzny
Użyj adnotacji @FixMethodOrder
w sortowniku metod MethodSorters.NAME_ASCENDING
. Spowoduje to uruchomienie wszystkich testów w klasie w deterministycznej i przewidywalnej kolejności. Implementacja porównuje nazwy metod, aw przypadku remisu porównuje metody z toString()
.
Poniższy segment kodu pochodzi z 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());
}
Przykład
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class OrderedTest {
@Test
public void testA() {}
@Test
public void testB() {}
@Test
public void testC() {}
}
Kolejność wykonania jest
- test A.
- testB
- testC