tearDown():用封口清理

时间:2014-05-08 14:51:28

标签: python unit-testing closures

我对静态方式TestCase.tearDown()无效感到满意。

有时我会在单位测试期间创建一些我希望稍后清理的东西,而且我事先并不知道需要清理的东西。

是否可以向tear_down_list中添加tearDown()执行的闭包?

1 个答案:

答案 0 :(得分:0)

喜欢这个吗?

class Foo(unittest.TestCase):
    def setUp(self):
        super(Foo, self).setUp()
        self.tear_down_list = []
    def tearDown(self):
        super(Foo, self).tearDown()
        for cb in self.tear_down_list:
            cb() # prints 5
    def foo(self):
        # ...
        foo = 5
        def bar():
            print(foo)
        self.tear_down_list.append(bar)
        # ...