[SOP]2.PHP的调试+PHP单测框架PHPUnit
2026/1/5大约 2 分钟
[SOP]2.PHP的调试+PHP单测框架PHPUnit
1、PHP语言的调试方法
基础调试法/打印变量值,php有几种非常简便的调试,这几种都是PHP自带的调试方法,非常常用
| 方法名 | 类型 | 描述 | 返回值 |
|---|---|---|---|
| echo | 语言结构 | 只能打印出简单类型变量的值(如 int,string) | 没有返回值 |
| 语言结构 | 只能打印出简单类型变量的值(如 int,string) | 总是返回 1 | |
| print_r | 函数 | 可以打印出复杂类型变量的值(如数组、对象),以列表的形式显示,并以 array、object 开头 | 如果想捕捉 print_r() 的输出,可使用第二个(return)参数。若此参数设为 TRUE,print_r() 将不打印结果,而是返回其输出。 |
| var_dump | 函数 | 可判断多个变量的类型和长度,并输出变量的数值,更适合调试 | 没有返回值 |
| var_export | 函数 | 和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码 | 同 print_r,可通过第二个参数返回字符串形式 |
| dump | 函数 | 大部分框架自带的调试函数,用于 var_dump() 友好(格式化)的输出,有些框架可能没有 | 见具体函数,通常没有返回值,但有些框架可能提供返回字符串的选项 |
2、单测框架
类似Java有单测框架Junit,PHP语言的单测框架是PHPUnit,目前PHP语言常用的第三方单测框架(几乎是业界标准):
1、PHPUnit
- 最常用的单元测试框架,类似 Java 的 JUnit。
- 和大多数 CI/CD、IDE(PhpStorm)都能无缝集成。
2、Pest【也就是PestPHP】
- 新兴的测试框架,基于 PHPUnit【所以,本文只讲解PHPUnit】,语法更简洁,类似 Jest
- 参考资料:https://learnku.com/php/t/44848
下面开始借助PHPUnit这个二进制包来单测
步骤1:准备代码1、文件Calculator.php
<?php
// src/Calculator.php
class Calculator {
public function add($a, $b) {
return $a + $b;
}
public function divide($a, $b) {
if ($b == 0) {
throw new InvalidArgumentException("Division by zero");
}
return $a / $b;
}
}步骤2:准备测试代码2、测试文件CalculatorTest.php
<?php
// tests/CalculatorTest.php
use PHPUnit\Framework\TestCase;
require_once __DIR__ . '/Calculator.php';
class CalculatorTest extends TestCase
{
public function testAdd()
{
$calc = new Calculator();
$this->assertEquals(5, $calc->add(2, 3)); // 2+3=5
}
public function testDivide()
{
$calc = new Calculator();
$this->assertEquals(2, $calc->divide(6, 3)); // 6/3=2
}
public function testDivideByZero()
{
$calc = new Calculator();
$this->expectException(InvalidArgumentException::class);
$calc->divide(5, 0); // 应该抛出异常
}
}步骤3:使用composer安装phpunit软件包,composer命令会自动创建composer.json文件
composer require --dev phpunit/phpunit然后查看上面执行后的文件目录如下
➜ allphp tree -L1
.
├── Calculator.php
├── CalculatorTest.php
├── composer.json
├── composer.lock
└── vendor
2 directories, 4 files
➜ allphp ls vendor/bin
php-parse phpunit步骤4:执行单测效果
./vendor/bin/phpunit CalculatorTest.php