前言
- 如果你想做个接口测试,但并不想公开内部接口
- 如果你只是想对自己封装的某块代码做个小测试
- 如果你想要编写代码边调试,又不想操作
Postman
或前端的功能来调用API
- 本文暂时仅介绍在
Laravel
和Comoposer Library
项目中如何配置PHPUnit
参考文档
如何愉快的在PhpStorm中进行PHPUnit单元测试和Xdebug断点调试? 如何愉快的在PhpStorm中进行PHPUnit单元测试和Xdebug断点调试? —— PHPUnit 手册: phpunit assert断言分类整理 :
安装
Xdebug
-
请参考以下文章的
PHP 安装 Xdebug
章节如何愉快的在PhpStorm中进行Xdebug断点调试: 如何愉快的在PhpStorm中进行Xdebug断点调试:
配置
配置 PhpStorm 的 PHP CLi
- 选择 File -> Setting
-
搜索
CLI
,左侧选择PHP
,点击+
新增一个 PHP 解释器。-
Windows
- 配置
php
执行程序 - 点击那个
同步的小图标
,如果看到successfully
就说明配置有效 - 指定 Xdebug 模块
- 配置
-
Ubuntu
-
配置 PHPUnit
-
选择 File -> Setting,搜索
test
,左侧选择Test Framework
,点击+
新增一个PHPUnit Local
。-
Composer Library 项目
- 选择第一项:使用
composer autoloader
导入配置 - 选择你项目下的
vendor/autoload.php
- 点击那个
同步的小图标
,如果看到successfully
就说明配置有效
- 选择第一项:使用
-
![配置 composer autoloader](https://img-blog.csdn.net/20180908214108744?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JvYm90WWFuZzEyMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)- Laravel 项目 - 选择第一项:使用 `composer autoloader` 导入配置 - 选择你项目下的 `bootstrap/autoload.php`(或者选项目下的 `vendor/autoload.php`) - 点击那个 `同步的小图标`,如果看到 `successfully` 就说明配置有效 ![配置 composer autoloader](https://img-blog.csdn.net/20180908233525792?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JvYm90WWFuZzEyMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
配置 phpunit.xml
- 在你的项目根目录下新建
phpunit.xml
文件(但奇怪的是我在PhpStorm
删除这个文件,也可以执行单元测试,猜测可能是phpunit.xml
配置文件是可选的)
./tests ./src
- 当然这个 phpunit.xml 只是基本配置,还有其他高级配置请自行百度
新增测试例
- 在你的项目根目录下新建
tests
目录 - 在
tests
目录下新建phpunit
测试类,以Test.php
为后缀 - 编写测试例方法,以
test
开头
requestApi(); //请求api 或 调用 service 后返回的结果 $this->assertEquals($expect, $result); //使用断言方法 比较结果值 } //假装请求数据 private function requestApi() { echo $date_1 = date('Y-m-d H:i:s'); echo "";; echo $date_2 = date('Y-m-d H:i:s'); echo "";; echo $date_3 = date('Y-m-d H:i:s'); echo "";; echo $date_4 = date('Y-m-d H:i:s'); echo "";; echo $date_5 = date('Y-m-d H:i:s'); echo "";; $j = 0; for ($i = 0; $i < 10; $i++) { $j = $i * 2; $i = $i + 2; echo $i; echo ""; echo $j; echo ""; } return 'hello world'; }}
- 打上断点,然后在要测试的方法名上右键,选择
Debug
这个方法 - 第一次可能会弹出让你选择测试范围的配置界面,这里我们只测试指定方法,所以选择了
Method
-
测试结果
- 测试例执行 Xdebug 的流程
- 测试例执行成功的返回信息
- 测试例执行 Xdebug 的流程
调试快捷键
-
F7
通过当前行,进入下一行,如果该行是方法,则进入方法体 -
F8
通过当前行,进入下一行,如果该行是方法,也直接进入下一行,不进入方法体 -
F9
通过整个流程,全部顺序执行,除非遇到下一个断点
要点总结
- 配置
PHP CLI
(php.exe
和xdebug.dll
) - 配置
PHPUnit
(autoload.php
) - 配置
phpunit.xml
(可选) - 新增
测试例
(测试类 和 测试方法)