我有一个引发异常的函数,但是当我使用 assertRaises 测试是否引发了异常时,即使实际上引发了异常,它也会失败。
项目/应用程序/文件.py
from math import pi
def circle_area(r):
try:
if type(r) == int:
result = pi * (r ** 2) # r = radius
return result
else:
raise TypeError("Radius must be a valid positive integer")
except Exception as ex:
print("Error:", ex)
项目/测试/测试.py
from app.file import circle_area
import unittest
class TestCases(unittest.TestCase):
def test_case_1(self):
print("Area when radius of circle is not a positive integer")
self.assertRaises(Exception, circle_area, 1.1)
testSuite = unittest.TestSuite()
testSuite.addTest(TestCases('test_case_1'))
unittest.TextTestRunner().run(testSuite)
输出:
Area when radius of circle is not a positive integer
Error: Radius must be a valid positive integer # <-- Exception is clearly raised here
F
======================================================================
FAIL: test_case_1 (__main__.TestCases)
----------------------------------------------------------------------
Traceback (most recent call last):
File "...project\test\test.py", line 7, in test_case_1
self.assertRaises(Exception, circle_area, 1.1)
AssertionError: Exception not raised by circle_area
----------------------------------------------------------------------
Ran 1 test in 0.000s
FAILED (failures=1)
Process finished with exit code 0