Drupal测试:从基础到实战
1. 测试基础
软件测试通常分为三种典型类型:单元测试、集成测试和系统测试。
单元测试主要针对代码的基本组成部分,一般以函数为单位进行。一个好的单元测试套件不仅要测试代码的基本功能,还要检查代码边界情况,确保在输入异常时能正确处理错误。例如,在测试一个温度转换函数时,单元测试会验证不同输入下函数的输出是否符合预期。
集成测试更关注各个函数如何协同工作以提供一个完整的系统。在Drupal中,很多任务需要整个系统的配合才能完成。比如创建一个节点,用户需要先登录并拥有相应权限,然后点击链接添加内容,最后在页面中输入节点所需信息。自动化这个过程时,需要先模拟用户登录,可能还需要启用一些模块、创建角色、设置权限等。Drupal 7测试模块提供了API来进行集成测试,无需使用物理机器人。
系统测试则是对整个系统进行全面测试,包括网络、硬件,有时还会涉及新手或有经验的用户。Drupal的测试框架介于集成测试和系统测试之间,为系统自动化测试提供了很好的方式。
2. 测试驱动开发
开发非平凡应用程序需要一定程度的测试。近年来,测试驱动开发(TDD)备受关注,即先开发测试,再用这些测试来定义和指导应用程序的开发。然而,对于初学者来说,尤其是在学习新的技术(如Drupal和PHP)时,坚持先开发测试套件可能会影响学习热情。在学习阶段,可以先进行一些尝试,熟悉技术后,测试驱动开发会变得更容易,对于复杂系统也更有优势。
Ward Cunningham将测试驱动开发的步骤总结如下:
1. 思考你要做什么。
2. 思考如何测试它。
3. 编写一个小测试,考虑期望的A