带@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且参数为零个。