在Python中,assertRaises
是 unittest.TestCase
类的一个方法,用于测试代码是否抛出了预期的异常。当你需要测试一个函数或方法在接收到特定参数时是否会抛出异常,你可以使用 assertRaises
方法。以下是如何正确测试带参数的 assertRaised
的步骤和示例代码:
unittest
,提供了一种结构化的方式来编写和运行测试。假设我们有一个函数 divide
,它接受两个参数并返回它们的商。如果第二个参数为零,则抛出 ValueError
。
def divide(a, b):
if b == 0:
raise ValueError("Cannot divide by zero")
return a / b
我们可以使用 unittest
模块来测试这个函数:
import unittest
class TestMathFunctions(unittest.TestCase):
def test_divide_by_zero(self):
with self.assertRaises(ValueError) as context:
divide(10, 0)
self.assertEqual(str(context.exception), "Cannot divide by zero")
def test_divide_positive_numbers(self):
self.assertEqual(divide(10, 2), 5)
def test_divide_negative_numbers(self):
self.assertEqual(divide(-10, 2), -5)
if __name__ == '__main__':
unittest.main()
test_divide_by_zero
方法:with self.assertRaises(ValueError)
来捕获预期的异常。divide(10, 0)
抛出了 ValueError
,则测试通过。test_divide_positive_numbers
和 test_divide_negative_numbers
方法:assertRaises
中添加对异常消息的检查。通过这种方式,你可以有效地测试你的代码在各种输入下的行为,确保其健壮性和可靠性。
“中小企业”在线学堂
数字化产业研学汇第三期
云+未来峰会
高校公开课
停课不停学 腾讯教育在行动第四课
云+社区技术沙龙[第2期]
云+社区沙龙online [国产数据库]
云+社区沙龙online第5期[架构演进]
领取专属 10元无门槛券
手把手带您无忧上云