PHPUnit 单元测试与 Mock 对象实战
PHPUnit 是 PHP 最常用的测试框架。
1. 安装与配置
composer require --dev phpunit/phpunit2. 编写测试
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。
单元测试是代码质量的保证。
