| assertRaisesRegexp(self, expected_exception, expected_regexp, callable_obj=None, *args, **kwargs) | Asserts that the message in a raised exception matches a regexp. | | Args: | expected_exception: Exception class expected to be raised. | expected_regexp: Regexp (re pattern object or ...
with self.assertRaises(ZeroDivisionError): divide(10, 0) if __name__ == '__main__': unittest.main() 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 异常处理关键点 具体异常优先:优先捕获特定类型的异常(如FileNotFoundError),最后捕获通用异常。 恢复或终止:根据业务需求选择恢复(...
with self.assertRaises(ZeroDivisionError): my_function_that_may_throw_zero_division_error()5.3.2 使用pytest等框架管理异常测试 pytest框架提供了更灵活的异常处理方式,可通过pytest.raises()上下文管理器验证函数是否抛出了预期异常。 import pytest def test_division_by_zero(): with pytest.raises(ZeroDivisionErro...
class Operations(unittest.TestCase): def test_add(self): # This test will pass self.assertEqual(add(2, 3), 5) # Test if 2 + 3 = 5 self.assertEqual(add(-1, 1), 0) # Test with negative numbers def test_subtract(self): # This test will fail self.assertE...
self.next=nextself.message = message 大多数的异常的名字都以"Error"结尾,就跟标准的异常命名一样。 1.3 异常处理 1.3.1 try/except 异常捕捉可以使用 try/except 语句 以下例子中,让用户输入一个合法的整数,但是允许用户中断这个程序(使用 Control-C 或者操作系统提供的方法)。用户中断的信息会引发一个 Keyboar...
importunittestclassTestDivision(unittest.TestCase):deftest_zero_denominator(self):withself.assertRaises(AssertionError):divide(10,0)deftest_positive_division(self):result=divide(10,2)self.assertEqual(result,5)if__name__=="__main__":unittest.main()# 运行单元测试 ...
一个测试用例应该只测试一个方面, 测试目的和测试内容应很明确。 主要是调用assertEqual、 assertRaises等断言方法判断程序执行结果和预期值是否相符 调用unittest.main()启动测试 如果测试未通过, 会输出相应的错误提示; 如果测试全部通过则显示ok, 添加-v参数显示详细信息。
importunittestclassTestExceptionHandling(unittest.TestCase):deftest_file_not_found_exception(self):withself.assertRaises(FileNotFoundError):process_file("nonexistent_file.txt")deftest_permission_error_exception(self):withself.assertRaises(PermissionError)...
assertRaises(ZeroDivisionError, divide, 6, 0) if __name__ == '__main__': unittest.main() 4.2.2 测试覆盖率分析与持续集成 确保代码充分测试的一个关键指标是测试覆盖率。使用coverage等工具可以帮助测量代码被执行测试的比例。而持续集成(CI)则是在每次提交后自动运行测试的过程,如使用GitHub Actions、...
with self.assertRaises(SomeException) as cm: | do_something() | the_exception = cm.exception | self.assertEqual(the_exception.error_code, 3) | | assertRaisesRegexp(self, expected_exception, expected_regexp, callable_obj=None, *args, **kwargs) | Asserts that the message in a raised exce...