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)
以下広告