Skip to main content

PHP + PHPUnit

方針

  • PHP のテストランナーとして PHPUnit を使う
  • 依存関係管理は Composer を使用

前提

  • PHP, Composer がインストール済であること
bash
brew install php
brew install composer

プロジェクト作成

bash
mkdir -p ~/workdir/SamplePHPUnit
cd ~/workdir/SamplePHPUnit
code .
composer init -n
composer require --dev phpunit/phpunit

composer.json に、autoload, autoload-dev を追加

composer.json
{
...

"autoload": {
"psr-4": {
"Sample\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"Sample\\Tests\\": "tests/"
}
}
}

反映

bash
composer dump-autoload

最小のコード

src/Sample.php
<?php

declare(strict_types=1);

namespace Sample;

final class Sample
{
public static function add(int $a, int $b): int
{
return $a + $b;
}
}
tests/SampleTest.php
<?php

declare(strict_types=1);

namespace Sample\Tests;

use PHPUnit\Framework\TestCase;
use Sample\Sample;

final class SampleTest extends TestCase
{
public function testAddTwoAndThree(): void
{
$this->assertSame(5, Sample::add(2, 3));
}
}

決まりごと

  • テストは tests/ 配下に置く
  • テストクラスは PHPUnit\Framework\TestCase を extends
  • テストメソッド名は test* で始める(または #[Test] / @test を使う)
  • 実行は プロジェクトローカルの vendor/bin/phpunit を使う

実行

bash
./vendor/bin/phpunit tests --testdox --color=always

実行結果

txt
% ./vendor/bin/phpunit tests --testdox --color=always
PHPUnit 13.0.2 by Sebastian Bergmann and contributors.

Runtime: PHP 8.5.3

. 1 / 1 (100%)

Time: 00:00, Memory: 14.00 MB

Sample (Sample\Tests\Sample)
✔ Add two and three

OK (1 test, 1 assertion)

以下広告