我有一个基础合约类,可以继承它以提供插件功能。我使用setuptools入口点添加新插件,如
entry_points="""
[plugins]
plugin1=plugins.plugin1:Plugin1
"""
课程看起来像......
class Plugin:
__metaclass__ = abc.ABCMeta
@abstractmethod
def must_override_method():
pass
@abstractmethod
def must_override_method2():
pass
#./plugins/plugin1.py
#Actually the plugins could be anywhere
class Plugin1(Plugin):
def must_override_method():
print("Hello")
虽然如果没有定义@abstracmethod
,must_override_methods
不允许我在运行时实例化该类,但我应该如何为尚未编写的插件添加单元测试。< / p>
是否有一种简单的方法可以编写通用测试来捕获&#34;插件&#34;在测试时没有实现抽象方法?
答案 0 :(得分:0)
我认为,最好的方法是对该抽象类使用模拟。模拟是一种不会真正创建对象或尝试创建的机制。相反,它将创建一个具有相同属性的模拟对象。请使用模拟模块进行相同的