1.参考链接:
2.注意项:
- @BeforeClass 和@Before区别 & @AfterClass和@After区别
在每一个测试方法运行前都会运行一次,只需要声明成为public。在类中只运行一次,并且必须声明为public static。通常,
@BeforeClass
当多个测试需要共享相同的计算昂贵的设置代码时,可以使用。建立数据库连接属于此类。你可以将代码从@BeforeClass
移到@Before
,但是测试运行可能需要更长的时间。注意,标记的代码@BeforeClass
作为静态初始化程序运行,因此它将在创建测试夹具的类实例之前运行。
特性 | Junit 4 | Junit 5 |
| @BeforeClass | @BeforeAll |
| @AfterClass | @AfterAll |
| @Before | @BeforeEach |
| @After | @AfterEach |
3.代码:
import java.util.Arrays;
import java.util.Collection;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
public class TestDemo {
private String name;
public TestDemo (String name) {
System.out.println("构造函数");
this.name=name;
}
@Before
public void setUp() {
System.out.println("Before");
}
@Parameters
public static Collection<Object[]> data() {
System.out.println("Parameters");
Object[][] data = new Object[][] { {"张三"}};
return Arrays.asList(data);
}
@Test
public void test() {
System.out.println("Test");
System.out.println(name);
}
@After
public void after() {
System.out.println("After");
}
}
4.运行结果:
Parameters
Parameters
构造函数
Before
Test
张三
After