junit tearDownClass()与tearDown()

Mah*_*esh 3 junit

tearDownClass()和tearDown()方法之间有什么区别?

我在哪里可以找到有关两者的文档。

JUnit的junit.org文档仅列出了tearDown()而不是tearDownClass():http ://www.junit.org/apidocs/junit/framework/TestCase.html#setUp ()

小智 5

将API的tearDownAfterClass()和tearDown()与批注@AfterClass和@After一起使用。在用Junit编写的所有单元测试都已执行之后,tearDownAfterClass()中的代码将仅执行一次。执行完所有测试后,可以在此处编写清理代码以释放资源。tearDown()中的代码将在执行每个测试方案之后执行。

这些API是JUnit 4的一部分。

下面是一个示例代码,用于了解这些API的调用:

公共类TestJUnit {

@BeforeClass
public static void setUpBeforeClass() throws Exception {
    System.out.println("Executing a JUNIT test file");
}

@AfterClass
public static void tearDownAfterClass() throws Exception {
    System.out.println("Execution of JUNIT test file done");
}

@Before
public void setUp() throws Exception {
    System.out.println("Executing a new test");
}

@After
public void tearDown() throws Exception {
    System.out.println("Execution done");
}

@Test
public void test1() {
    System.out.println("test1 ...");
}

@Test 
public void test2(){
    System.out.println("test2 ...");        
}
Run Code Online (Sandbox Code Playgroud)

}

输出: 执行JUNIT测试文件执行新测试test1执行完成执行新测试test2执行执行JUNIT测试文件执行

API的带有注释@BeforeClass和@Before的setUpBeforeClass()和setUp()的行为如下:

setUpBeforeClass-在此处具有初始化代码很有用。用这种方法编写的代码仅执行一次,并且执行将在执行各个测试之前进行。

setUp()-此块中的代码将在每个单独的测试之前执行。