You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何针对含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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 20:02:22