Python 测试子类行为?
我创建了4个类的协作(Python) 我在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的行为 我该怎么做Python 测试子类行为?,python,unit-testing,testing,Python,Unit Testing,Testing,我创建了4个类的协作(Python) 我在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):
...
现在定义一个子类A2:
class A2(A):
...
我将对您的测试用例进行子类化,但只覆盖setUp
/setUp
方法,因为子类A2
的其余API应该与A
一致
因此,您的测试子类将是:
class TestA2(TestCaseA):
def setUp(self):
self.thing = A2()
听起来像是我的家庭作业/作业。。。如果我错了,请纠正我……如果不是,语言很难理解,你能不能再花几分钟写下你的问题,让我们理解它?错了,这只是我给它的形式。但对-我在家里做这件事。我将删除视图中的领域知识,使其更抽象。包括你的工作。显示您正在尝试的内容和不起作用的内容。如果
TestWithMock
,您会怎么做?如果没有看到一些代码,我看不出子类a
的mock对A2
也不起作用的任何原因。当然,您也可以在设置
方法中设置模拟,以便模拟可以随每个测试用例
而变化。我也会这样做。还有其他的可能性吗?
class A2(A):
...
class TestA2(TestCaseA):
def setUp(self):
self.thing = A2()