【发布时间】:2012-09-07 10:14:29
【问题描述】:
我有一个unittest 测试文件,其中包含四个测试类,每个测试类负责在一个特定类上运行测试。每个测试类都让我们使用完全相同的set-up 和teardown 方法。 set-up 方法比较大,初始化大约 20 个不同的变量,而 teardown 方法只是简单地将这 20 个变量重置为初始状态。
到目前为止,我已经在四个 setUp 类中的每一个中放置了 20 个变量。这可行,但不是很容易维护;如果我决定更改一个变量,我必须在所有四个 setUp 方法中更改它。然而,我寻找更优雅的解决方案失败了。理想情况下,我只想输入我的 20 个变量一次,在我的四个 setup 方法中的每一个中调用它们,然后在我的每个测试方法之后将它们删除。考虑到这一点,我尝试将变量放在一个单独的模块中并在每个 setUp 中导入它,但是当然这些变量只能在 setup 方法中使用(另外,虽然我无法说出确切的原因,这感觉像是一种可能容易出现问题的方法
from unittest import TestCase
class Test_Books(TestCase):
def setup():
# a quick and easy way of making my variables available at the class level
# without typing them all in
def test_method_1(self):
# setup variables available here in their original state
# ... mess about with the variables ...
# reset variables to original state
def test_method_2(self):
# setup variables available here in their original state
# etc...
def teardown(self):
# reset variables to original state without having to type them all in
class Books():
def method_1(self):
pass
def method_2(self):
pass
【问题讨论】:
-
显示实际代码,而不是说明你在做什么的评论,而不是在确切的代码是问题时显示你在做什么。
标签: python unit-testing fixtures