我想为使用
unittest
且非常分层的现有库创建一个测试套件。
类层次结构看起来有点像这样:
A
|_B
|_C
|_D
|_E
类
A
是使用 B
和 C
的实例创建的,其中 C
需要 D
和 E
。这些实例的制作成本相当昂贵,因此我想在以后的测试用例中重用它们。
我想要的是这样的:
class TestsClass(TestCase):
def test_00_test_e():
self.e = E()
...
def test_01_test_d():
self.d = D()
...
def test_02_test_c():
self.c = C(self.d, self.e)
...
...
然而这是不可能的,因为
unittest
为每个测试用例创建一个唯一的对象。
有没有办法在 unittest
中获得此功能,以便我可以在项目的测试框架中工作而不必添加依赖项?
您可以拥有
setUpClass()
并在执行类中的所有方法之前调用它:
class TestsClass(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.e = E()
cls.d = D()
cls.c = C(cls.d, cls.e)
def test_00_test_e(self):
# Use self.e instance