aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/junit/FixMethodOrder.java
blob: aaa0313e710cae786324995d4d35b334a2aa2c29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package org.junit;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.junit.runners.MethodSorters;

/**
 * This class allows the user to choose the order of execution of the methods within a test class.
 *
 * <p>The default order of execution of JUnit tests within a class is deterministic but not predictable.
 * The order of execution is not guaranteed for Java 7 (and some previous versions), and can even change
 * from run to run, so the order of execution was changed to be deterministic (in JUnit 4.11)
 *
 * <p>It is recommended that test methods be written so that they are independent of the order that they are executed.
 * However, there may be a number of dependent tests either through error or by design.
 * This class allows the user to specify the order of execution of test methods.
 *
 * <p>For possibilities, see {@link MethodSorters}
 *
 * Here is an example:
 *
 * <pre>
 * &#064;FixMethodOrder(MethodSorters.NAME_ASCENDING)
 * public class MyTest {
 * }
 * </pre>
 *
 * @see org.junit.runners.MethodSorters
 * @since 4.11
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface FixMethodOrder {
    /**
     * Optionally specify <code>value</code> to have the methods executed in a particular order
     */
    MethodSorters value() default MethodSorters.DEFAULT;
}