関数で例外が発生するかどうかをチェックする次のテストコードがあります。テストに合格することを期待していますが、代わりに失敗が示されます。テストコードは次のとおりです。
import unittest
# define a user-defined exception
class MyException(Exception):
def __str__(self):
return repr("ERROR: Just raised my exception!")
# this is my main class with a method raising this exception
class MyMainObject(object):
def func(self):
raise MyException()
# the test class
class TestConfig(unittest.TestCase):
def test_1(self):
other = MyMainObject()
self.assertRaises(MyException, other.func())
# calling the test
if __name__ == '__main__':
unittest.main()
がother.func()
assertステートメントで呼び出されると、MyException
が発生します(簡単に確認できます)。したがって、テストは、で失敗するassertRaises
ので、テストに合格する必要がありますが、次のようになります。other.func()
MyException
....
MyException: 'ERROR: Just raised my exception!'
----------------------------------------------------------------------
Ran 1 test in 0.001s
FAILED (errors=1)
何か問題はないと思いますので、この問題についてご意見をいただければ幸いです。