0
私はプラグイン機能を提供するために継承できる基本コントラクトクラスを持っています。私はmust_override_methods
でない場合@abstracmethod
は私が実行時にクラスをインスタンス化することはできませんがsetuptoolsのを使用して、新しいプラグインがPythonでプラグインクラスをテストするための一般的なunittestを書く方法
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")
をエントリポイント追加していますまだ書かれていないプラグインの単体テストを追加するにはどうしたらいいですか?
テスト中に抽象メソッドを実装していない "プラグイン"をキャッチする簡単な一般的なテストを書く方法はありますか?
私はどのメソッドのレスポンスや実装をテストしようとしているわけではないので、この問題は解決しないと思います。私はプラグインが有効かどうかを、それらが正しくインスタンス化されるかどうかをチェックすることによってテストしようとしています。 –