如何编写通用的单元测试来测试python中的插件类
我有一个基本的契约类,可以继承它来提供插件功能。我正在使用setuptools入口点添加新插件,比如如何编写通用的单元测试来测试python中的插件类,python,Python,我有一个基本的契约类,可以继承它来提供插件功能。我正在使用setuptools入口点添加新插件,比如 entry_points=""" [plugins] plugin1=plugins.plugin1:Plugin1 """ 课程看起来像 class Plugin: __metaclass__ = abc.ABCMeta @abstractmethod def must_override_method(): pass @abstractme
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
不允许我在运行时实例化类,如果必须覆盖\u方法未定义,但我应该如何为尚未编写的插件添加单元测试
有没有一种简单的方法来编写泛型测试,捕获测试时不实现抽象方法的“插件”?我认为,最好的方法是对抽象类使用模拟。模拟是一种不会真正创建对象或尝试创建对象的机制。相反,它将创建一个具有相同属性的模拟对象。请对相同的使用模拟模块,我认为这不能解决问题,因为我不尝试测试任何方法的响应或实现。我试图通过检查插件调用是否正确实例化来测试插件是否有效。