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
(可選)測試例
(測試類 和 測試方法)