0

我有一个引发异常的函数,但是当我使用 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
4

0 回答 0