Python 3.5を使用すると、実行時に以下のすべてのテストが成功するのはなぜですか? div
が呼び出されたときにException
が呼び出されないので、どうすればassertRaises()
は文句を言わないのですか?なぜPythons unittest.assertRaises()はエラーを発生させませんか?
assertRaises()
のドキュメントによれば、「例外が発生しなければ失敗する」
誰かが私を助けることができますか?あなたは間違った署名でdiv
と呼ばれていると例外がdiv
呼び出す前に上げた(div
の実際のボディが実行されなかった、例外は実行前に上げた)ので
..
----------------------------------------------------------------------
Ran 2 tests in 0.002s
def div(self, x, y):
if y == 0:
raise Exception("Division by zero")
return x/y
class MyTest(unittest.TestCase):
def test1(self):
with self.assertRaises(Exception) as cm:
self.div(2, 1)
def test2(self):
self.assertRaises(Exception, div, 2, 1)
のように、投げるとキャッチ 'Exception'ないでください:だ、それはまたあなたのテストで例外メッセージを確認することをお勧めしますなぜ
ここでスローされている 'TypeError' – Eric