PythonCookbook:使用unittest控制测试行为

需积分: 49 20 下载量 65 浏览量 更新于2024-08-08 收藏 2.01MB PDF 举报
"这篇文档是《Python Cookbook》第三版的一部分,涵盖了Python编程中的一些常见问题和解决方案,包括数据结构、算法、字符串、文本处理、数字、日期和时间等多个方面。" 在【标题】中提到的"忽略或期望测试失败"是针对单元测试的一种策略,特别是在Python的unittest模块中。unittest提供了装饰器来控制测试方法的行为,例如`@unittest.skip`可以用来忽略特定的测试,表示这些测试不会被执行。`@unittest.skip('reason')`中的'reason'参数可以解释为什么测试被忽略。另一方面,`@unittest.fail`装饰器用于使测试强制失败,它会在测试方法执行时立即抛出一个AssertionError,这对于预知某个测试会失败的情况很有用。 【描述】中提到了一个具体的示例,展示了如何使用这些装饰器来编写单元测试。`test_0`是一个预期通过的测试,而`test_1`则使用了`@unittest.skip`装饰器被忽略,`self.fail('should have failed!')`则表明`test_1`预期会因为这个语句而失败。 在【标签】中提到的"Python"表明这些都是关于Python编程的知识点。文档涵盖了广泛的主题,包括: 1. **数据结构和算法**: - 解压序列赋值,如`a, *b = some_iterable`。 - 保留最后N个元素,可以使用`collections.deque`实现。 - 优先级队列可以使用`heapq`模块构建。 - 多值字典映射,可以使用`defaultdict(list)`。 2. **字符串和文本**: - 使用多种分隔符分割字符串,可以自定义分隔符列表。 - 正则表达式进行字符串匹配和替换,如`re.match`和`re.sub`。 - Unicode字符串处理,包括标准化和正则表达式的Unicode支持。 3. **数字日期和时间**: - 数字的四舍五入,使用`round`函数。 - 浮点数的精确计算,避免浮点数误差。 - 字节和大整数的转换,如`struct`模块的打包和解包。 - 复数运算,Python内置支持复数类型。 这些只是文档中提及的部分主题,实际内容更为详尽,包括更多实用的编程技巧和最佳实践,对于提升Python编程技能非常有帮助。