欢迎来到程序员中文网!

首页 Linux Mysql C++ Python PHP JavaScript 资源下载 动态 开源推荐
我要投稿 投诉建议

PHPUnit 单元测试与 Mock 对象实战

时间:2026年08月12日 05:38:48 浏览:0

PHPUnit 单元测试与 Mock 对象实战


PHPUnit 是 PHP 最常用的测试框架。


1. 安装与配置


composer require --dev phpunit/phpunit

2. 编写测试


use PHPUnit\Framework\TestCase;

class UserTest extends TestCase {
public function testUserFullName(): void {
$user = new User('张三', '三');
$this->assertEquals('张三三', $user->getFullName());
}

public function testAgeValidation(): void {
$this->expectException(\InvalidArgumentException::class);
new User('张三', '三', -1);
}
}

3. 数据提供器


/**
* @dataProvider additionProvider
*/
public function testAdd(int $a, int $b, int $expected): void {
$this->assertEquals($expected, $a + $b);
}

public function additionProvider(): array {
return [[1,2,3], [0,0,0], [-1,1,0]];
}

4. Mock 对象


public function testCreateOrder(): void {
$paymentMock = $this->createMock(PaymentService::class);
$paymentMock->method('charge')->willReturn(true);

$service = new OrderService($paymentMock);
$this->assertTrue($service->create([...]));
}

运行:./vendor/bin/phpunit


单元测试是代码质量的保证。