2

モジュール InvalidObj があります

class InvalidObj(Exception):

    def__init__(self, value):
        self.value = value

    def __str__(self):
        return repr(self.value)

class Hello(object):

    def __init__(self):
        self.a = 10
        self.b = 20 

    def aequalb(self):
        if self.a != self.b:
            raise InvalidObj("This is an error")

関数が InvalidObj 例外をスローする単体テストを実行しようとしています

class test_obj(unittest.TestCase):   

    def test_obj(self):
        at = Hello()
        self.assertRaises(InvalidObj("This is an error"), a.aequalb)

上記の test_obj クラスを実行すると、「issubclass() arg 2 はクラスまたはタプルでなければなりません」というエラーが表示されます。しかし、行を次のように変更すると、

self.assertRaises(InvalidObj, at.aequalb)

これはうまくいきます。エラーは、発生したときに渡されたメッセージを返すはずではありませんか?

4

1 に答える 1