如何针对含assert断言的Python函数编写UnitTest并验证错误信息?
为含assert断言的Python函数编写单元测试并验证错误信息
要测试包含assert断言的函数,核心是捕获断言抛出的AssertionError并验证错误信息,Python标准库的unittest框架可以轻松实现。
原函数代码
def divisible_by_five(x): assert x % 5 == 0, "The number is not divisible by 5" print("The number is divisible by 5")
单元测试代码
import unittest class TestDivisibleByFive(unittest.TestCase): def test_valid_number(self): # 测试合法输入:能被5整除,断言不触发 divisible_by_five(10) def test_invalid_number(self): # 测试非法输入:捕获AssertionError并验证错误信息 with self.assertRaises(AssertionError) as error_context: divisible_by_five(7) # 对比异常信息是否符合预期 self.assertEqual(str(error_context.exception), "The number is not divisible by 5") if __name__ == '__main__': unittest.main()
关键说明
- 使用
assertRaises上下文管理器包裹待测试的函数调用,精准捕获断言抛出的AssertionError - 通过
error_context.exception获取异常对象,转换为字符串后与预设的错误信息做相等校验 - 合法输入的测试无需额外断言,只要函数执行时不抛出异常,测试即通过
内容的提问来源于stack exchange,提问作者tom roddick
相关产品推荐
相关产品推荐

