PHP:
编写测试

如何操作:

原生 PHP – PHPUnit

一个在 PHP 中广泛使用的测试工具是 PHPUnit。通过 Composer 安装:

composer require --dev phpunit/phpunit ^9

编写一个简单的测试:

tests 目录下创建一个 CalculatorTest.php 文件:

use PHPUnit\Framework\TestCase;

// 假设你有一个加法的 Calculator 类
class CalculatorTest extends TestCase
{
    public function testAdd()
    {
        $calculator = new Calculator();
        $this->assertEquals(4, $calculator->add(2, 2));
    }
}

运行测试:

./vendor/bin/phpunit tests

示例输出:

PHPUnit 9.5.10 由 Sebastian Bergmann 和贡献者编写。

.                                                                   1 / 1 (100%)

时间:00:00.005,内存:6.00 MB

OK (1 测试, 1 断言)

第三方库 – Mockery

对于包括模拟对象在内的复杂测试,Mockery 是一个受欢迎的选择。

composer require --dev mockery/mockery

将 Mockery 与 PHPUnit 集成:

use PHPUnit\Framework\TestCase;
use Mockery as m;

class ServiceTest extends TestCase
{
    public function tearDown(): void
    {
        m::close();
    }

    public function testServiceCallsExternalService()
    {
        $externalServiceMock = m::mock(ExternalService::class);
        $externalServiceMock->shouldReceive('process')->once()->andReturn('mocked result');

        $service = new Service($externalServiceMock);
        $result = $service->execute();

        $this->assertEquals('mocked result', $result);
    }
}

要运行,请使用与上面相同的 PHPUnit 命令。Mockery 允许表达和灵活的模拟对象,方便测试应用程序内的复杂交互。