Skip to content

Latest commit

 

History

History
39 lines (26 loc) · 1.62 KB

File metadata and controls

39 lines (26 loc) · 1.62 KB

tp的可测试的代码思路

可测试的代码基本要求

代码方面

  1. 清晰外部依赖
    即分清是本项目范围,还是其他项目范围。
    外部依赖使用facade和服务提供者 模式,进行抽象,项目使用外部依赖时,统一使用facade进行操作。

  2. 可伪造的外部依赖
    外部依赖是不可控的,在开发测试阶段,我们需要对外部依赖进行mock,以保证我们开发和测得独立性。

  3. 登录模拟
    方便的模拟某登录用户,进行操作。

  4. 便捷的断言
    对api的json结果能方便的进行断言。

数据方面

  1. 数据库更新自动化
    使用数据库迁移和填充功能,是数据库结构和基础数据能自动变为最新且完整。
  2. 方便的数据伪造
    使用Faker 扩展,方便的伪造数据,并结合模型和工厂,伪造对应的数据记录。
  3. 每次测试的数据不互相污染
    使用phpunit的setUp和tearDown方法,在每个测试方法前后自动回滚数据库。
  4. 快速断言数据库记录

tp需要修改的地方

  1. TP 的facade 默认对测试并不友好,需要修改可以被模拟,并且每次测试,模拟独立,不会影响到下一个测试。

  2. tp没有模型工厂,需要创建模型工厂 和 Faker来进行快速生成,方便生成测试的数据。

  3. 需要一个通用的授权机制,并且可以被模拟登陆授权。

  4. 数据库改动都需要使用数据迁移来操作修改,每次运行测试,先进行迁移,每个测试用例前,需要自动启动事务,完成后回滚。