Drupal 测试与数据库访问全解析
测试的重要性与代码覆盖率
在软件开发领域,测试占据着至关重要的地位。在 Drupal 框架中,测试的重要性随着版本的更新愈发凸显。在 Drupal 7 之前,测试并未得到足够的重视,测试模块甚至需要对核心进行修改才能正常工作。而到了 Drupal 7,开发者们将测试置于开发的核心位置,没有完善测试套件的核心模块不会发布,未通过所有自动化测试函数的代码也不会被接受。
在测试过程中,我们可能会遇到各种问题。例如,在测试时发现属性#maxlength拼写错误,但 Drupal 并未将其识别为错误,而是忽略了它不认识的内容,导致系统使用了#maxlength的默认值 128。这使得原本 25 字符的测试字段在范围内,未引发错误。只有纠正拼写并重新运行测试,才能得到期望的结果。
代码覆盖率也是测试中不可忽视的一部分。它指的是代码中被测试的部分占比。测试代码覆盖率并非易事,需要某种代理在测试运行时跟踪源代码,并在测试执行完成后报告结果。虽然有适用于 PHP 的代码覆盖率工具,但目前没有专门针对 Drupal 的全面套件。code_coverage模块虽然存在,但截至目前还需要进一步完善。现阶段,我们要确保测试覆盖代码,并且代码能按设计正常工作。
数据库层的演变与安全风险
Drupal 本质上是一个用于创建、维护和显示存储在数据库中的信息的工具,数据库管理是整个系统的关键部分。在 Drupal 7 之前,系统大多局限于使用 MySQL 数据库,尽管有一些成功实现 Postgres/SQL 的案例,但绝大多数开发和