Python面向对象程序测试指南
1. 为什么要进行测试
在软件开发中,测试是至关重要的一环。对于Python程序员来说,测试尤为重要,原因主要有以下几点:
-动态特性:Python是动态语言,虽然不像Java和C++等编译型语言在编译时进行类型检查,但Python测试更注重值的检查,确保在正确的时间设置了正确的属性,或者序列具有正确的长度、顺序和值。
-易于测试:Python的交互式解释器和近乎零的编译时间,使得编写几行代码并运行程序以确保其按预期工作变得容易。
-自动化测试的必要性:随着程序的增长,手动测试所有可能的输入情况变得不可能。自动化测试可以在几秒钟内运行,覆盖更多潜在的输入情况。
编写测试的主要原因有四个:
1. 确保代码按开发者的预期工作。
2. 确保代码在修改后仍然正常工作。
3. 确保开发者理解了需求。
4. 确保编写的代码具有可维护的接口。
2. 测试驱动开发(TDD)
测试驱动开发的核心理念是“先写测试”。它认为未测试的代码就是有问题的代码,只有未编写的代码才可以不进行测试。具体流程如下:
1. 编写测试代码,由于此时还没有实现相应的功能代码,第一次运行测试应该失败。
2. 编写能够使测试通过的代码。
3. 为下一段代码编写新的测试,重复上述步骤。
测试驱动开发有两个主要目标:
- 确保测试代码真正被编写。在编写完代码后,人们很容易认为代码似乎能正常工作而不编写测试。但如果在编写代