首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >junit tearDownClass() vs tearDown()

junit tearDownClass() vs tearDown()
EN

Stack Overflow用户
提问于 2011-08-16 04:27:08
回答 4查看 12.7K关注 0票数 4

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

我在哪里可以找到这两种方法的文档。

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

EN

回答 4

Stack Overflow用户

发布于 2014-01-07 16:58:30

使用带有注释@AfterClass和@After的接口的tearDownAfterClass()和tearDown()。tearDownAfterClass()中的代码只会在用Junit编写的所有单元测试执行完之后执行一次。可以在此处编写清理代码,以便在执行完所有测试后释放资源。tearDown()中的代码将在执行每个测试场景之后执行。

这些API是JUnit 4的一部分。

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

公共类TestJUnit {

代码语言:javascript
复制
@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() -此块中的代码将在每个单独的测试之前执行。

票数 6
EN

Stack Overflow用户

发布于 2011-08-16 04:59:26

在JUnit 4.xAPI中有一个AfterClass注释,这就是您要说的吗?

在执行TestCase的每个测试方法之后,就会发生tearDown。有一个单独的钩子(我链接到的AfterClass ),它在TestCase的所有测试方法运行之后执行。

我不认为3.x Junit API有任何课后拆卸的概念。也许你在想TestNG?

票数 3
EN

Stack Overflow用户

发布于 2013-03-14 18:16:17

根据我所看到的,Java单元测试似乎与Python非常接近,所以如果JUnit与我正在使用的Python测试用例相同,那么在测试用例类中,在您编写的每个test()之前和之后都会调用setUp()tearDown()

setUpClass()tearDownClass()在特定测试用例类的开始和结束时调用一次。

为了说明这一点,我在Python中使用:

代码语言:javascript
复制
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 tests
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7070430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档