本作品系 原創(chuàng), 采用 《署名-非商業(yè)性使用-禁止演繹 4.0 國際》 許可協(xié)議
image.png
博文內(nèi)容
前言
- 如果你想做個接口測試彼妻,但并不想公開內(nèi)部接口
- 如果你只是想對自己封裝的某塊代碼做個小測試
- 如果你想要編寫代碼邊調(diào)試嫌佑,又不想操作
Postman
或前端的功能來調(diào)用API
- 本文暫時僅介紹在
Laravel
和Comoposer Library
項目中如何配置PHPUnit
參考文檔
如何愉快的在PhpStorm中進行PHPUnit單元測試和Xdebug斷點調(diào)試豆茫?https://segmentfault.com/a/1190000016323574
如何愉快的在PhpStorm中進行PHPUnit單元測試和Xdebug斷點調(diào)試?https://blog.csdn.net/RobotYang123/article/details/82533080
——
PHPUnit 手冊:http://www.phpunit.cn/manual/current/zh_cn/index.html
phpunit assert斷言分類整理 :https://www.cnblogs.com/ningskyer/articles/5744760.html
安裝
Xdebug
- 請參考以下文章的
PHP 安裝 Xdebug
章節(jié)如何愉快的在PhpStorm中進行Xdebug斷點調(diào)試:https://segmentfault.com/a/1190000014942730?_ea=4357076
如何愉快的在PhpStorm中進行Xdebug斷點調(diào)試:https://blog.csdn.net/RobotYang123/article/details/80370030
配置
配置 PhpStorm 的 PHP CLi
-
選擇 File -> Setting
PhpStorm Setting - 搜索
CLI
屋摇,左側(cè)選擇PHP
揩魂,點擊+
新增一個 PHP 解釋器。-
Windows
- 配置
php
執(zhí)行程序 - 點擊那個
同步的小圖標
炮温,如果看到successfully
就說明配置有效 -
指定 Xdebug 模塊
Windows下配置PhpStorm PHP CLI
- 配置
-
Ubuntu
Ubuntu下配置PhpStorm PHP CLI
-
配置 PHPUnit
- 選擇 File -> Setting火脉,搜索
test
,左側(cè)選擇Test Framework
柒啤,點擊+
新增一個PHPUnit Local
倦挂。
新增一個PHPUnit Local- Composer Library 項目
- 選擇第一項:使用
composer autoloader
導入配置 - 選擇你項目下的
vendor/autoload.php
- 點擊那個
同步的小圖標
,如果看到successfully
就說明配置有效
配置 composer autoloader
- 選擇第一項:使用
- Laravel 項目
- 選擇第一項:使用
composer autoloader
導入配置 - 選擇你項目下的
bootstrap/autoload.php
(或者選項目下的vendor/autoload.php
) - 點擊那個
同步的小圖標
担巩,如果看到successfully
就說明配置有效
配置 composer autoloader
- 選擇第一項:使用
- Composer Library 項目
配置 phpunit.xml
- 在你的項目根目錄下新建
phpunit.xml
文件(但奇怪的是我在PhpStorm
刪除這個文件方援,也可以執(zhí)行單元測試,猜測可能是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>
- 當然這個 phpunit.xml 只是基本配置涛癌,還有其他高級配置請自行百度
新增測試例
- 在你的項目根目錄下新建
tests
目錄 - 在
tests
目錄下新建phpunit
測試類犯戏,以Test.php
為后綴
新建 phpunit 測試類
新建PHPunit測試類-命名 - 編寫測試例方法,以
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'; //期待結(jié)果
$result = $this->requestApi(); //請求api 或 調(diào)用 service 后返回的結(jié)果
$this->assertEquals($expect, $result); //使用斷言方法 比較結(jié)果值
}
//假裝請求數(shù)據(jù)
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
這個方法
開始執(zhí)行測試例 - 第一次可能會彈出讓你選擇測試范圍的配置界面,這里我們只測試指定方法弃衍,所以選擇了
Method
選擇測試范圍 - 測試結(jié)果
-
測試例執(zhí)行 Xdebug 的流程
測試例執(zhí)行Xdebug的流程 -
測試例執(zhí)行成功的返回信息
測試例執(zhí)行成功的返回信息
-
調(diào)試快捷鍵
-
F7
通過當前行胚鸯,進入下一行,如果該行是方法笨鸡,則進入方法體 -
F8
通過當前行,進入下一行坦冠,如果該行是方法形耗,也直接進入下一行,不進入方法體 -
F9
通過整個流程辙浑,全部順序執(zhí)行激涤,除非遇到下一個斷點
要點總結(jié)
- 配置
PHP CLI
(php.exe
和xdebug.dll
) - 配置
PHPUnit
(autoload.php
) - 配置
phpunit.xml
(可選) - 新增
測試例
(測試類 和 測試方法)
關(guān)于我的
個人簡介
屬性 | 屬性值 |
---|---|
昵稱 | 大綿羊、大綿羊rbt判呕、rbtyang倦踢、RobotYang |
格言 | 博觀約取,厚積薄發(fā)侠草;刻意練習辱挥、日益精進 |
后端 | Go、PHP边涕、Python |
前端 | Vue晤碘、Angular褂微、Uniapp、公眾號园爷、小程序 |
數(shù)據(jù) | MySQL宠蚂、Redis/Memcached、MongoDB |
博客 | CSDN ? 思否 ? 掘金 ? 簡書 ? 知乎 ? 開源中國 ? 訂閱號(RobotYang123) ? |
期望贊賞
萬水千山總是情童社,贊不贊賞都可行 ( ̄▽ ̄)~■干杯□~( ̄▽ ̄)
贊賞碼