带@Before注解的方法将在每次@Test方法执行之前执行。类似地,在每个@Test方法之后执行带@After注解的方法。这可以用于重复设置测试设置,并在每次测试后进行清理。因此测试是独立的,准备代码不会复制到@Test方法中。
例:
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class DemoTest {
    private List<Integer> list;
    @Before
    public void setUp() {
        list = new ArrayList<>();
        list.add(3);
        list.add(1);
        list.add(4);
        list.add(1);
        list.add(5);
        list.add(9);
    }
    @After
    public void tearDown() {
        list.clear();
    }
    @Test
    public void shouldBeOkToAlterTestData() {
        list.remove(0); // 删除列表的第一个元素。
        assertEquals(5, list.size()); // 尺寸缩小到五个
    }
    @Test
    public void shouldBeIndependentOfOtherTests() {
        assertEquals(6, list.size());
    }
}用@Before或@After注释的方法必须是public void且参数为零个。