如何编写通用单元测试来测试python中的插件类

时间:2017-06-29 05:09:33

标签: 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")

虽然如果没有定义@abstracmethodmust_override_methods不允许我在运行时实例化该类,但我应该如何为尚未编写的插件添加单元测试。< / p>

是否有一种简单的方法可以编写通用测试来捕获&#34;插件&#34;在测试时没有实现抽象方法?

1 个答案:

答案 0 :(得分:0)

我认为,最好的方法是对该抽象类使用模拟。模拟是一种不会真正创建对象或尝试创建的机制。相反,它将创建一个具有相同属性的模拟对象。请使用模拟模块进行相同的