单元测试

单元测试依赖于 testing 底层封装 Http Server Request 对象,并且增加 Faker 功能。

3.1 开始,FastD\Test\TestCase 改为 FastD\TestCase

  1. <?php
  2. use FastD\TestCase;
  3. class IndexControllerTest extends TestCase
  4. {
  5. public function testSayHello()
  6. {
  7. $request = $this->request('GET', '/');
  8. $response = $this->handleRequest($request);
  9. $this->response($response, ['foo' => 'bar']);
  10. }
  11. }

单元测试尽量模拟 Http 请求,对响应结果进行匹配校对,来达到预期的方式进行测试。

数据库测试

数据库 Testing 需要依赖 phpunit/dbunit 进行扩展,引用自 dbunit 扩展 trait,实现 dataset connection 方法接口

具体可参考: 数据库测试

数据库测试支持无数据库测试,当开发者不配置数据库连接的时候,框架选择普通默认测试,不创建数据库连接,和单元测试保持一致。

数据集数据存放在: database/dataset,命名规则为: {table}.yml,内部定义为每一个数组为一行记录。

  1. id: 1
  2. content: "Hello buddy!"
  3. user: "joe"
  4. created: 2010-04-24 17:15:23

此处要注意数据库的测试流程,每个测试进程完成后会重置数据库。

下一节: 辅助函数