数据库测试的难点
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者数据进行比对
发表回复