##总结构##
thinkphp5的测试方案分为两个部分一个是单元测试,另一个是集成测试。
建议单元测试对外发布,集成测试对内使用,因为集成测试需要使用持续集成环境,以及一些shell脚本。
###环境准备###
####单元测试环境准备####
- phpunit 单元测试工具
- phpunit-speedtrap 测试执行时间,当超出执行时间超出某一时间时输出
- vfsStream 用于测试过程中创建虚拟文件,避免权限等问题
####集成测试环境准备####
- jekins 持续集成环境
- phing php构建脚本
- CodeSniffer 代码规范检测工具
- PHPMD php错误检测工具
####可能用到的环境####
- PHPDepend php以来分析工具,用于重构
- xhprof 以及xhgui用来查找函数执行效率以及原因
####基本框架测试####
#####基本框架的测试准备######
- 数据库两份,用于测试逻辑,一份存储测试用例,一份存储期待结果
- 一个精简版的框架或方法,用来测试真正的框架核心
#####基本框架的测试内容及简介######
以下内容只是定一个大概的测试内容,具体的单元测试用例需要和开发人员一同研讨提供。
- 安装配置
- 测试生成生成的文件是否与预期的相等
- build文件配置测试
- url设计
- 测试生成规则
- 测试访问路径是否与预期相等
- 入口测试
- 重写规则测试
- 文件加载测试
- 自动加载测试
- 命名空间测试(不太好测)
- 类库映射测试
- 类库导入测试
- 配置测试
- 配置文件测试
- 路由测试
- 路由模式测试
- 注册路由测试
- 路由规则测试
- 控制器测试
- 访问测试
- 模板和输出测试
- 多层控制器测试
- 空路由和空控制器测试
- 分层次控制器测试
- RESTful测试
- RESTful路由测试
- 模型测试
- 模型定义测试
- 高级模型测试
- 视图模型测试
- 关联模型测试
- 视图测试
- 视图类功能测试
- 主题测试
- 其他渲染引擎测试
- 数据库测试
- 链接测试
- 驱动测试
- 域名部署测试
- 变量输入测试
- I方法测试
- 缓存测试
- 基础功能测试
- 驱动测试
- 日志测试
- 基础功能测试
- 驱动测试
- 行为测试
- 基础行为测试(添加、绑定等)
- 语言测试
- 语言包加载测试
- 基础函数测试
注:命名规范我们会在最后用CodeSniffer检测