【发布时间】:2020-08-03 07:16:58
【问题描述】:
我有两个类应该为两个独立的库实现相同的测试用例(我们称它们为 LibA 和 LibB)。到目前为止,我定义了要在一个抽象基类中实现的测试方法,它确保两个测试类都实现了所有需要的测试:
from abc import ABC, abstractmethod
class MyTests(ABC):
@abstractmethod
def test_foo(self):
pass
class TestsA(MyTests):
def test_foo(self):
pass
class TestsB(MyTests):
def test_foo(self):
pass
这按预期工作,但仍然可能发生的是,在 LibB 上工作的人不小心将 test_bar() 方法添加到 TestB 而不是基类。在这种情况下,TestA 类中缺少的 test_bar() 将不会被注意到。
有没有办法禁止向(抽象)基类添加新方法?目标是强制在基类中添加新方法,从而强制在所有派生类中实现新方法。
【问题讨论】:
标签: python python-3.x class inheritance abstract-class