什么是 PHPUnit?
PHPUnit是一个轻量级的PHP测试框架。它是在PHP5下面对JUnit3系列版本的完整移植,是xUnit测试框架家族的一员(它们都基于模式先锋Kent Beck的设计)。
解决问题
- 如果你想做个接口测试,但并不想公开内部接口
- 如果你只是想对自己封装的某块代码做个小测试
- 如果你想要编写代码边调试,又不想操作 Postman 或前端的功能来调用 API
参考文档
PHPUnit 手册: http://www. phpunit.cn/manual/.. . phpunit assert断言分类整理 : https://www. cnblogs.com/nings.. .
安装配置
项目目录中安装 phpunit/phpunit
➜ app cd amazon-advertising
➜ amazon-advertising git:(master) ✗ composer require phpunit/phpunit
在项目目录中新建单元测试文件tests
mkdir tests
配置 phpunit.xml
在你的项目根目录下新建 phpunit.xml 文件,为引入autoload.php。 配置内容:
<?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 name="service">
<directory>tests</directory>
</testsuite>
<!--filter过滤依赖文件的位置-->
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./src</directory>
</whitelist>
</filter>
</phpunit>
配置 PHPStorm 的 PHP CLi
![c47f4e9b98b2c727566857c66cdfa5fa.png](https://i-blog.csdnimg.cn/blog_migrate/7a423013a63dfe3103c7245c69396c28.jpeg)
配置 PHPUnit
![ffe23f8dabb3ea977ffd91a93c4c2e1a.png](https://i-blog.csdnimg.cn/blog_migrate/35a540665c44788506fd7049c144f9b1.jpeg)
新增测试例
![dd99f240088c3b41a0f3017209a94a26.png](https://i-blog.csdnimg.cn/blog_migrate/98cb2726a698b0d9bd350f50a243a572.jpeg)
![cad90dc19bdcfc70ef06c07e80d3f8ce.png](https://i-blog.csdnimg.cn/blog_migrate/716fff47abd32c877799d0c576d4468e.jpeg)
<?php
use PHPUnitFrameworkTestCase;
class ConverterTest extends TestCase
{
public function testHello()
{
$this->assertEquals('Hello', 'Hell' . 'o');
}
}
特殊说明
- 测试用例类名称必须为Test结尾
ConverterTest
- 测试用例必须继承
PHPUnitFrameworkTestCase
- 测试用例方法名必须以test开头
testHello
参考文件
- https://dengxiaolong.com/article/2018/07/phpunit-on-phpstorm.html
- https://segmentfault.com/a/1190000016323574