JUnit ne garantit pas l'ordre d'exécution des méthodes définies par l'annotation @ Test. 
Par conséquent, créez les trois classes suivantes pour contrôler l'ordre d'exécution.
En tant que flux de processus, ʻOrderedRunner a été ajouté à chaque méthode de test lorsque le test a été exécuté.  Le flux consiste à contrôler l'ordre d'exécution en lisant la valeur de réglage de ʻOrder.
TestMethod.java
public enum TestMethod {
    strArrayIsNullTest,
    strIsNullTest
};
Order.java
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface Order {
    TestMethod order();
}
OrderedRunner.java
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import org.junit.runners.BlockJUnit4ClassRunner;
import org.junit.runners.model.FrameworkMethod;
import org.junit.runners.model.InitializationError;
public class OrderedRunner extends BlockJUnit4ClassRunner {
    public OrderedRunner(Class<?> klass) throws InitializationError  {
        super(klass);
    }
    @Override
    protected List<FrameworkMethod> computeTestMethods() {
        List<FrameworkMethod> list = super.computeTestMethods();
        Collections.sort(list, new Comparator<FrameworkMethod>() {
            @Override
            public int compare(FrameworkMethod f1, FrameworkMethod f2) {
                Order o1 = f1.getAnnotation(Order.class);
                Order o2 = f2.getAnnotation(Order.class);
                if (o1 == null || o2 == null){
                    return -1;
                }
                return o1.order().ordinal() - o2.order().ordinal();
            }
        });
        return list;
    }
}
Foo.java
public class Foo {
    public static boolean isNull(String[] arg) {
        return arg == null;
    }
    public static boolean isNull(String str) {
        return str == null || str.length() == 0 || str.equals("");
    }
}
 FooTest.java
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(OrderedRunner.class)
public class FooTest {
    @Test
    @Order(order=TestMethod.strArrayIsNullTest)
    public void strArrayIsNullTest() {
        String[] arg = {"test"};
        assertFalse(Foo.isNull(arg));
        System.out.println("strArrayIsNullTest OK");
    }
    //Même si vous ajoutez un test, l'ordre est garanti en ajoutant un élément à TestMethod.
    /**
     * @Test
     * @Order(order=TestMethod.reservationsTest)
     * public void reservationsTest();
     */
    @Test
    @Order(order=TestMethod.strIsNullTest)
    public void strIsNullTest() {
        String str = "test";
        assertFalse(Foo.isNull(str));
        System.out.println("strIsNullTest OK");
    }
}
Matériel de référence
Recommended Posts