我有一个unittest
包含四个测试类的测试文件,每个测试类负责在一个特定类上运行测试。每个测试类都使我们使用完全相同的set-up
方法teardown
。该set-up
方法相对较大,启动了大约 20 个不同的变量,而该teardown
方法只是将这 20 个变量重置为初始状态。
到目前为止,我已经在四个 setUp 类中的每一个中放置了 20 个变量。这可行,但不是很容易维护;如果我决定更改一个变量,我必须在所有四个 setUp 方法中更改它。然而,我寻找更优雅的解决方案失败了。理想情况下,我只想输入我的二十个变量一次,在我的四个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