2022年10月31日月曜日

pytestで抽象クラスをテストする方法

pytestで抽象クラスをテストする方法

概要

いつもやり方を忘れるのでメモ

Hoge.__abstractmethods__ = set() してからクラスを作成してそのクラスでテストする

環境

  • Ubuntu 18.04
  • Python 3.10.2

サンプルコード

class Hoge():
    def say(self):
        raise NotImplementedError()
  • vim test_app.py
import pytest

from app import Hoge


class TestHoge():

    Hoge.__abstractmethods__ = set()

    def test_hoge(self):

        class RealHoge(Hoge):
            pass

        rh = RealHoge()
        with pytest.raises(NotImplementedError):
            rh.say()

0 件のコメント:

コメントを投稿