tearDownClass()和tearDown()方法有什么区别?
我在哪里可以找到这两种方法的文档。
JUnit的junit.org文档只列出了tearDown()而没有列出tearDownClass():http://www.junit.org/apidocs/junit/framework/TestCase.html#setUp()
发布于 2014-01-07 16:58:30
使用带有注释@AfterClass和@After的接口的tearDownAfterClass()和tearDown()。tearDownAfterClass()中的代码只会在用Junit编写的所有单元测试执行完之后执行一次。可以在此处编写清理代码,以便在执行完所有测试后释放资源。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 ...");
}}
输出:执行JUNIT测试文件执行新测试test1执行完成执行新测试test2执行完成执行JUNIT测试文件完成
该接口的setUpBeforeClass()和setUp()分别带有注释@BeforeClass和@Before,其行为如下:
setUpBeforeClass -这里有初始化代码很有用。用此方法编写的代码将只执行一次,并且将在执行单个测试之前执行。
setUp() -此块中的代码将在每个单独的测试之前执行。
发布于 2011-08-16 04:59:26
在JUnit 4.xAPI中有一个AfterClass注释,这就是您要说的吗?
在执行TestCase的每个测试方法之后,就会发生tearDown。有一个单独的钩子(我链接到的AfterClass ),它在TestCase的所有测试方法运行之后执行。
我不认为3.x Junit API有任何课后拆卸的概念。也许你在想TestNG?
发布于 2013-03-14 18:16:17
根据我所看到的,Java单元测试似乎与Python非常接近,所以如果JUnit与我正在使用的Python测试用例相同,那么在测试用例类中,在您编写的每个test()之前和之后都会调用setUp()和tearDown()。
setUpClass()和tearDownClass()在特定测试用例类的开始和结束时调用一次。
为了说明这一点,我在Python中使用:
class exampleUnitTest(SeleniumTestCase):
def setUp(self):
# setup each test
def test1(self):
# run test process
def test2(self):
# run test process
def tearDown(self):
# teardown each test
@classmethod
def tearDownClass(cls):
# teardown at end of all testshttps://stackoverflow.com/questions/7070430
复制相似问题