001    package org.junit;
002    
003    import java.lang.annotation.ElementType;
004    import java.lang.annotation.Retention;
005    import java.lang.annotation.RetentionPolicy;
006    import java.lang.annotation.Target;
007    
008    /**
009     * When writing tests, it is common to find that several tests need similar
010     * objects created before they can run. Annotating a <code>public void</code> method
011     * with <code>&#064;Before</code> causes that method to be run before the {@link org.junit.Test} method.
012     * The <code>&#064;Before</code> methods of superclasses will be run before those of the current class,
013     * unless they are overridden in the current class. No other ordering is defined.
014     * <p>
015     * Here is a simple example:
016     * <pre>
017     * public class Example {
018     *    List empty;
019     *    &#064;Before public void initialize() {
020     *       empty= new ArrayList();
021     *    }
022     *    &#064;Test public void size() {
023     *       ...
024     *    }
025     *    &#064;Test public void remove() {
026     *       ...
027     *    }
028     * }
029     * </pre>
030     *
031     * @see org.junit.BeforeClass
032     * @see org.junit.After
033     * @since 4.0
034     */
035    @Retention(RetentionPolicy.RUNTIME)
036    @Target(ElementType.METHOD)
037    public @interface Before {
038    }
039