diff options
Diffstat (limited to 'junit4/src/main/java/org/junit/Rule.java')
-rw-r--r-- | junit4/src/main/java/org/junit/Rule.java | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/junit4/src/main/java/org/junit/Rule.java b/junit4/src/main/java/org/junit/Rule.java new file mode 100644 index 0000000..9e67c07 --- /dev/null +++ b/junit4/src/main/java/org/junit/Rule.java @@ -0,0 +1,47 @@ +package org.junit; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotates fields that contain rules. Such a field must be public, not + * static, and a subtype of {@link org.junit.rules.TestRule}. + * The {@link org.junit.runners.model.Statement} passed + * to the {@link org.junit.rules.TestRule} will run any {@link Before} methods, + * then the {@link Test} method, and finally any {@link After} methods, + * throwing an exception if any of these fail. If there are multiple + * annotated {@link Rule}s on a class, they will be applied in an order + * that depends on your JVM's implementation of the reflection API, which is + * undefined, in general. + * + * For example, here is a test class that creates a temporary folder before + * each test method, and deletes it after each: + * + * <pre> + * public static class HasTempFolder { + * @Rule + * public TemporaryFolder folder= new TemporaryFolder(); + * + * @Test + * public void testUsingTempFolder() throws IOException { + * File createdFile= folder.newFile("myfile.txt"); + * File createdFolder= folder.newFolder("subfolder"); + * // ... + * } + * } + * </pre> + * + * For more information and more examples, see + * {@link org.junit.rules.TestRule}. + * + * Note: for backwards compatibility, this annotation may also mark + * fields of type {@link org.junit.rules.MethodRule}, which will be honored. However, + * this is a deprecated interface and feature. + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.FIELD}) +public @interface Rule { + +}
\ No newline at end of file |