Postman
或前端的功能来调用 API
Laravel
和 Comoposer Library
项目中如何配置 PHPUnit
如何愉快的在PhpStorm中进行PHPUnit单元测试和Xdebug断点调试? https://segmentfault.com/a/11...
如何愉快的在PhpStorm中进行PHPUnit单元测试和Xdebug断点调试? https://blog.csdn.net/RobotYa...
——
PHPUnit 手册: http://www.phpunit.cn/manual/...
phpunit assert断言分类整理 : https://www.cnblogs.com/nings...
请参考如下文章的 PHP 安装 Xdebug
章节php
如何愉快的在PhpStorm中进行Xdebug断点调试: https://segmentfault.com/a/11...
如何愉快的在PhpStorm中进行Xdebug断点调试: https://blog.csdn.net/RobotYa...
搜索 CLI
,左侧选择 PHP
,点击 +
新增一个 PHP 解释器。html
Windows
前端
php
执行程序同步的小图标
,若是看到 successfully
就说明配置有效Ubuntu
选择 File -> Setting,搜索 test
,左侧选择 Test Framework
,点击 +
新增一个 PHPUnit Local
。bootstrap
Composer Library 项目segmentfault
composer autoloader
导入配置vendor/autoload.php
同步的小图标
,若是看到 successfully
就说明配置有效 - Laravel 项目 - 选择第一项:使用 `composer autoloader` 导入配置 - 选择你项目下的 `bootstrap/autoload.php`(或者选项目下的 `vendor/autoload.php`) - 点击那个 `同步的小图标`,若是看到 `successfully` 就说明配置有效 
phpunit.xml
文件(但奇怪的是我在 PhpStorm
删除这个文件,也能够执行单元测试,猜想多是 phpunit.xml
配置文件是可选的)<?xml version="1.0" encoding="UTF-8"?> <!--bootstrap指定启动测试时, 先加载vendor/autoload.php--> <phpunit backupGlobals="false" backupStaticAttributes="false" bootstrap="vendor/autoload.php" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="false" stopOnFailure="false"> <!--testsuite指定测试文件的目录--> <testsuite> <directory suffix="Test.php">./tests</directory> </testsuite> <!--filter过滤依赖文件的位置--> <filter> <whitelist processUncoveredFilesFromWhitelist="true"> <directory suffix=".php">./src</directory> </whitelist> </filter> </phpunit>
tests
目录tests
目录下新建 phpunit
测试类,以 Test.php
为后缀test
开头<?php /** * Created by PhpStorm. * User: robot * Date: 2018/9/8 * Time: 23:54 */ namespace HonorSdk\Tests; use PHPUnit\Framework\TestCase; class HelloTest extends TestCase { public function testHello() { $expect = 'hello world'; //期待结果 $result = $this->requestApi(); //请求api 或 调用 service 后返回的结果 $this->assertEquals($expect, $result); //使用断言方法 比较结果值 } //伪装请求数据 private function requestApi() { echo $date_1 = date('Y-m-d H:i:s'); echo "<br>";; echo $date_2 = date('Y-m-d H:i:s'); echo "<br>";; echo $date_3 = date('Y-m-d H:i:s'); echo "<br>";; echo $date_4 = date('Y-m-d H:i:s'); echo "<br>";; echo $date_5 = date('Y-m-d H:i:s'); echo "<br>";; $j = 0; for ($i = 0; $i < 10; $i++) { $j = $i * 2; $i = $i + 2; echo $i; echo "<br>"; echo $j; echo "<br>"; } return 'hello world'; } }
Debug
这个方法Method
测试结果api
F7
经过当前行,进入下一行,若是该行是方法,则进入方法体F8
经过当前行,进入下一行,若是该行是方法,也直接进入下一行,不进入方法体F9
经过整个流程,所有顺序执行,除非遇到下一个断点PHP CLI
(php.exe
和 xdebug.dll
)PHPUnit
(autoload.php
)phpunit.xml
(可选)测试例
(测试类 和 测试方法)