我创建了 4 个类(Python)的合作。
class A:
    ## A, B, C are nested classes of A
    class B:
        ...
    class C:
        ...
    class D:
        ...
    ## example methods
    def newB(self):
        return self.B()
    def newC(self):
        return self.C(self.newB())
我在 4 个测试用例中编写了 60 个测试方法,这是一项艰苦的工作。
因为 B、C、D 不提供太多行为,所以应将 A、B、C、D 类子类化以添加新行为。
问题:
我写了很多测试代码来保证A、B、C、D配合正确。如果我将 A、B、C、D 子类化为 A2、B2、C2、D2,我将需要以与测试 A、B、C、D 相同的方式测试 A2、B2、C2、D2 的行为。
我该怎么做呢?
- 每次创建数据库的新子类时都将所有单元测试子类化?
 - 通过方法生成测试用例和套件?
 - ...
 
您将如何确保子类数据库正常工作并且没有错误?
给定:单元测试,数据库的类和您的子类
现在存在的测试:
class TestA(unittest.TestCase):
    A = A
    def setUp(self):
        self.a = self.A()
    def test_something(self):
        ...
class MockB(A.B):
    ...
class AWithMock(A):
    B = MockB
class TestAWithMock(TestA):
    A = AWithMock
    def setUp(self):
        self.a = self.A()
    def test_something_new(self):
        ...
class MockB2(A.B):
    ...
class MockC2(A.C):
    ...
class MockD2(A.D):
    ...
class TestWithMock(unittest.TestCase):
    def test_b(self):
        b = MockB2()
        ...
    def test_c(self):
        ...
    def test_d(self):
        ...