乐趣区

学习phpunit数据库测试

数据库测试的难点
db 中的数据相当于全局变量,所有人所有代码都可以对其进行修改,而且数据随时都在变化;普通的测试方式,无法保证对其进行的测试每次都能通过
需要专门的框架和手段进行保证。

推荐使用 dbunit 进行 db 相关测试
dbunit 的安装,使用 composer:

{
  "require": {"phpunit/dbunit": ">=1.2"}
}

db 测试的主要步骤

1. 建立 fixture
2. 业务处理
3. 断言

1. 建立 fixture
相当于初始化 db,初始化的数据从哪里来?文本

  • getConnection
  • 读取 xml 文本(或者:cvs、yaml、mysql 导出数据、数组。。。)
  • 将文本内容插入 db

这样就能保证,每次开始测试前 db 中的数据是确定的固定的。

2. 业务处理

3. 断言

  • 使用框架提供的接口读取: Dataset、DataTable、RowCount
  • 获取 expect 数据 =》从 xml 文本 or db 获取
  • 断言 =》以上 2 者数据进行比对
退出移动版