Python 测试、调试与优化指南
1. 数据处理与测试优化
在测试过程中,将数据存于内存比写入磁盘更快,而且无需在测试后清理磁盘文件。不过,在某些罕见情况下,若要测试模块功能,所需提供和比较的数据量可能超出测试源代码合理嵌入的范围。此时,单元测试需借助外部辅助数据文件来存储要提供给被测试模块的数据,以及用于与输出进行比较的数据。即便如此,通常还是建议使用上述 io 类的实例,而非让被测试模块进行实际的磁盘 I/O 操作。
更为重要的是,对于与外部实体(如数据库、GUI 或网络上的其他程序)交互的模块进行单元测试时,强烈建议使用桩(stub)。使用桩进行测试,能更轻松地控制测试的各个方面,并且模拟操作的速度比实际操作更快,这对于提高单元测试的运行速度至关重要。
若代码使用了伪随机数,可通过提供种子(seed)使随机行为具有可重复性,便于测试。具体而言,要确保测试代码能轻松调用 random.seed 并传入已知参数,让后续生成的伪随机数完全可预测。在使用伪随机数生成随机输入来设置测试时,默认应使用已知种子,同时保留为特定技术(如模糊测试)更改种子的灵活性。
2. 调试方法
由于 Python 的开发周期较快,最有效的调试方式往往是编辑代码,在关键位置输出相关信息。Python 提供了多种方法让代码探索自身状态,以提取与调试相关的信息, inspect 和 traceback 模块专门支持这种探索,也称为反射或内省。
获取调试相关信息后,可使用 print 函数显示信息,
Python测试调试优化全解
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



