我有以下測試代碼檢查函數中引發異常。我期望測試通過,但是會指出失敗。下面是測試代碼:assertRaises失敗,即使可調用引發所需的異常(python,unitest)
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()
是所謂的斷言語句,MyException
提高(可以很容易地進行檢查)。所以,assertRaises
測試應該通過測試,如other.func()
failes與MyException
,但:
....
MyException: 'ERROR: Just raised my exception!'
----------------------------------------------------------------------
Ran 1 test in 0.001s
FAILED (errors=1)
我看不出什麼問題,所以我希望在這個問題上的一些輸入。
您應該注意到這是一個錯誤,而不是失敗!你的例外甚至沒有被捕獲。 –