8. 数据库测试
最后更新于:2022-04-01 03:45:26
# 第 8 章 数据库测试
在各种编程语言中,许多入门与中级的单元测试范例都暗示着这样一种信息:很容易用简单的测试来对应用程序的逻辑进行测试。但是对于以数据库为中心的应用程序而言,这与现实相去甚远。一旦开始使用诸如 Wordpress、TYPO3、或 Symfony(配合 Doctrine 或 Propel)之类的东西,就很容易在用 PHPUnit 时碰到超多问题:正是由于这些库和数据库之间实在耦合的太紧密了。
>[info] ### Note
> 请确保已经安装了 PHP 扩展模块 `pdo` 和与数据库对应的特定扩展,比如 `pdo_mysql`。否则以下范例是无法运行的。
你大概会在日常工作面对的项目中经历这一幕。你打算把你那或生疏或纯熟的 PHPUnit 技能用到工作中去,结果被以下问题之一卡住了:
1. 待测方法执行了一个相当大的 JOIN 操作,并且得到的数据用于计算某些重要的结果。
1. 业务逻辑中混合执行了 SELECT、INSERT、UPDATE 和 DELETE 语句。
1. 为了给待测方法建立合理的初始数据,需要在两个以上(可能远超过)表里设置测试数据。
DbUnit 扩展大大简化了为测试设置数据库的操作,并且可以在对数据执行了一系列操作之后验证数据库的内容。