2014-02-11 26 views
0

TestCasesetUp()我想确保数据库的数据处于已知状态。在setUp()中调用tearDown()?

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

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

这是常见模式吗?还是有更好的解决方案?

更新

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

+0

为什么不拆除的测试本身? –

+0

在测试中测试:setUp - > test - > tearDown。您不需要在设置中调用拆卸。拆解总是被称为。这是在最后的声明。 – User

回答

1

根据您对帖子的评论,tearDown将始终在测试运行后运行,无论运行是否成功。如果你担心自己的数据库可能会得到测试运行之间的某处添加到它的数据,那么你可以推断出你的数据库干净的代码和安装程序开始调用它还有:

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() 
相关问题