PHPunit

来源:互联网 发布:办公楼网络进户线 编辑:程序博客网 时间:2024/05/16 07:05

PHPunit


    https://phpunit.de/index.html

目标

  1. 简单! 高效敏捷 代码易写,逻辑简单
  2. 稳定! 持续集成 提交代码自动生成测试报告
  3. 清晰! 文档体现 容易理解

数据库测试的难点和解决方案

难点

为以数据库为中心的单元测试将远难于仅基于逻辑程序的单元测试。

对数据库进行测试时,需要处理以下可变因素:

  • 清理脏数据
  • 准备新数据
  • 验证数据状态

而我们的测试代码应当尽可能简短精确,这有若干原因:

  • 我们不希望为生产代码的小变更而对测试代码进行数量可观的修改。
  • 我们希望在哪怕好几个月以后也能轻松地阅读并理解测试代码

方案

用 PHPunit 提供的 DbUnit 套件来完成上述的事情

  1. 自动用清理数据库环境 (如果能逻辑清理脏数据是最好的,但目前还不能实现)
  2. 自动插入测试所需要的行
  3. 更简单的验证数据库状态

目前发现的缺陷

不支持多数据库连接,还好我们可以封装一个简单的类来让支持这个需要。

目录结构

应用目录结构

.├── applications│   ├── configs│   ├── init│   ├── library│   ├── public│   ├── runtime│   ├── service│   ├── template│   └── tests        //单元测试目录├── sdk└── Vipcore

单元测试目录结构

.├── ApiTest              //单元测试代码│   ├── Brand            │   └── Merchandise     ├── bin                  │   └── phpunit         //phpunit包├── DataBase                  │   └── vipshop         //数据库表初始化├── Bootstrap.php       //初始化脚本├── phpunit.xml         //phpunit 配置文件├── README.md           //README└── run-tests.php       //执行文件

执行测试

php run-test.php  //测试全部用例php run-test.php ApiTest/Brand  //测试部分用例php run-test.php ApiTest/Merchandise/MerchandiseTest.php  //测试单个文件php run-tests.php ApiTest/Merchandise/MerchandiseTest.php --filter testModifyByMidHasLog  //测试单个单元测试

编写测试脚本

数据增删改接口

  1. 准备数据环境
  2. 执行测试接口
  3. 检验数据状态
  4. 清理数据环境

数据查询接口

  1. 准备数据环境
  2. 执行测试接口
  3. 检验返回状态
  4. 清理数据环境

Edit By MaHua

0 0
原创粉丝点击