一、背景
目前公司开发php项目主流框架为Yii,主流开发工具为phpstorm,Yii2自带单元测试,结合phpstorm的xdebug功能可以做好代码调试,进一步提升代码质量,感兴趣的小伙伴往下看额。
二、Yii2单元测试
- Yii2 basic版和advance版集成了Codeception,在项目目录下composer install后会在verdor目录生成Codeception文件夹,如下图:
同时在项目根目录下会有一个tests文件夹,目录结构如下:tests
--codeception
----backend
--------unit backend单元测试文件目录
------------_bootstrap.php backend单元测试所需变量定义,执行run->Codecept::run()->runSuite()->SuitManager::initialize()触发SUITE_INIT事件,此时加载这里的_bootstrap文件,注意:此处文件名称应与yml文件中指定的settings:bootstrap一致,否则抛异常
------------TestCase.php 继承自yii\codeception\TestCase,指定了配置文件为'@tests/codeception/config/backend/unit.php'
------------DbTestCase.php 继承自yii\codeception\DbTestCase,指定了配置文件为'@tests/codeception/config/backend/unit.php'
--------acceptance backend验收测试文件目录
--------functional backend功能测试文件目录
--------_bootstrap.php 执行build命令时若codeception.yml文件指定了settings:bootstrap则在此时加载其内容,参见Codeception\Configuration::config()
--------codeception.yml backend所有测试的测试配置信息
--------unit.suite.yml backend所有单元测试套件的测试配置信息
--------acceptance.suite.yml backend所有验收测试套件的测试配置信息
--------functional.suite.yml backend所有功能测试套件的测试配置信息
----config
--------backend
------------unit.php backend单元测试指定的配置文件
------------acceptance.php backend验收测试指定的配置文件
------------functional.php backend功能测试指定的配置文件
------------config.php backend所有测试均需设置的配置信息
--------frontend
------------配置结构同backend
--------acceptance.php 面向所有验收测试的配置信息
--------functional.php 面向所有功能测试的配置信息
--------unit.php 面向所有单元测试的配置信息
--------config.php 面向所有测试的公共配置信息
--codeception.yml 执行所有测试的测试配置信息 -
用命令行生成测试文件
- 写点业务代码,待会测试用
- 命令行运行测试单元查看测试是否通过
- 个人总结
Yii2自带的单元测试需要大家先准备好入参,出参,业务代码,稍显麻烦,更多玩法大家自行琢磨。不想准备出参?那就来个方便的吧。
三、phpstorm+postman+xdebug调试代码
- php安装xdebug扩展
这个比较简单,自行百度,Linux:https://www.cnblogs.com/suan07lai/articles/4911296.html
修改php.ini,如下: - phpstorm配置xdebug
- postman设置
- 效果
- 总结
phpstorm+xebug原理如下图:
phpstorm+postman是php开发人员的利器,再加上xdebug,将会让我们的开发更方便,更安全,到底有多爽据说试过的人才知道。
四、总结
以上为Yii2单元测试和代码调试的图文教程,做好单元测试和代码调试将会使你的代码质量更上一层楼,抓紧时间试试吧。