| 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> |
| * @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; |
| } |