[英]How to write generic unittests for testing plugin classes in python
我有一个基本合同类,可以继承该类以提供插件功能。 我正在使用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
没有定义,但我应该如何去添加单元测试对于那些没有写的插件。
有没有一种简单的方法可以编写通用测试来捕获在测试过程中未实现抽象方法的“插件”?
我认为,最好的方法是对该抽象类使用模拟。 模拟是一种机制,它不会真正创建对象或尝试创建对象。 而是,它将创建一个具有相同属性的模拟对象。 请使用相同的模拟模块
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.