在setUp()中调用tearDown()?

时间:2014-02-11 09:47:41

标签: python unit-testing

TestCase中的setUp()我希望确保数据库的数据处于已知状态。

由于我不知道其他测试是否留下了一些数据,我开始删除旧的东西。

现在我发现如果我在tearDown()的第一行调用setUp(),我可以使用更少的代码。

这是一种常见的模式吗?或者有更好的解决方案吗?

更新

我知道如何调用tearDown()(总是在测试之后)。

1 个答案:

答案 0 :(得分:1)

根据您帖子的评论,无论运行是否成功,tearDown将始终在测试运行后运行。如果您担心数据库可能会在测试运行之间的某个地方添加数据,那么您可以推断出db clean代码并在setUp的开头调用它:

class Test(unittest.testcase):
    def cleanDB(self):
        """db cleaning code goes here"""
    def setUp(self):
        self.cleanDB()
        # Rest of setup code
    def tearDown(self):
        # tearDown code
        self.cleanDB()