aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/junit/BeforeClass.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/junit/BeforeClass.java')
-rw-r--r--src/main/java/org/junit/BeforeClass.java35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/main/java/org/junit/BeforeClass.java b/src/main/java/org/junit/BeforeClass.java
new file mode 100644
index 0000000..35b7854
--- /dev/null
+++ b/src/main/java/org/junit/BeforeClass.java
@@ -0,0 +1,35 @@
+package org.junit;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * <p>Sometimes several tests need to share computationally expensive setup
+ * (like logging into a database). While this can compromise the independence of
+ * tests, sometimes it is a necessary optimization. Annotating a <code>public static void</code> no-arg method
+ * with <code>@BeforeClass</code> causes it to be run once before any of
+ * the test methods in the class. The <code>@BeforeClass</code> methods of superclasses
+ * will be run before those the current class.</p>
+ *
+ * For example:
+ * <pre>
+ * public class Example {
+ * &#064;BeforeClass public static void onlyOnce() {
+ * ...
+ * }
+ * &#064;Test public void one() {
+ * ...
+ * }
+ * &#064;Test public void two() {
+ * ...
+ * }
+ * }
+ * </pre>
+ * @see org.junit.AfterClass
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+public @interface BeforeClass {
+}