在Unittest中通过setUp和tearDown替换python with_statement

问题描述

在一个测试套件中,我有一些组织如下的代码,上下文是一些持久对象,当退出c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lcurl块时,该持久对象将被删除:

with

很明显,在两个测试中,代码都重复了安装样板,因此我想使用setUp()和tearDown()方法来分解该样板。

但是我不知道如何提取with_statement。我想到的是这样的:

class Test(TestCase):
    def test_action1(self):
        with create_context() as context:
            context.prepare_context()
            context.action1()
            self.assertTrue(context.check1())
            
    def test_action2(self):
        with create_context() as context:
            context.prepare_context()
            context.action2()
            self.assertTrue(context.check2())

但是我认为当测试失败时,这并不完全等效,而且必须在tearDown()中放置一个明确的删除也感觉不正确。

将with_statement代码更改为setUp()和tearDown()样式的正确方法是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)