下面是一个使用变体(基于
https://stackoverflow.com/a/63777635
)展示如何测试所有
Animal
子类:
@pytest.mark.parametrize("cls", Animal.__subclasses__())
def test_animals(mocker, cls):
mocker.patch.multiple(cls, __abstractmethods__=set())
inst = cls()
assert inst.zoo_str() == f"{inst.description()}Get more info at zoo.com!"