PHPUnitのセットアップと最初のテスト
ComposerでPHPUnitをインストールし、最初のテストクラスを作成します
「PHPUnitのセットアップと最初のテスト」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。
PHPUnit とは
PHPUnit は PHP の標準的なユニットテストフレームワークです。コードの個々の単位を分離して検証する自動テストを作成できます。
PHPUnit のインストール
Composer の開発用依存関係としてインストールします。
$ composer require --dev phpunit/phpunit "^11.0"phpunit.xml の設定
テストスイートを設定するために、phpunit.xml ファイルを作成します。
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
bootstrap="vendor/autoload.php">
<testsuites>
<testsuite name="Unit">
<directory>tests/</directory>
</testsuite>
</testsuites>
</phpunit>テストクラスの作成
PHPUnit\Framework\TestCase を継承します。test で始まる各 public メソッドがテストになります。
<?php
use PHPUnit\Framework\TestCase;
class CalculatorTest extends TestCase
{
public function test_addition(): void
{
$calc = new Calculator();
$this->assertEquals(5, $calc->add(2, 3));
}
}テスト対象クラス
テスト対象の Calculator クラスです。
<?php
class Calculator
{
public function add(int $a, int $b): int
{
return $a + $b;
}
}テストの実行
プロジェクトのルートから PHPUnit を実行します。
$ vendor/bin/phpunit
...
OK (1 test, 1 assertion)テストの命名規則
2つの形式があります。test_method_name()(test プレフィックス付きの snake_case)を使う形式と、プレフィックスを付けずに @test アノテーションを使う形式です。
<?php
/** @test */
public function addition_returns_correct_sum(): void
{
$this->assertEquals(5, (new Calculator())->add(2, 3));
}ディレクトリ構成
一般的な構成では、tests が src の構造を反映します。
src/Calculator.php → Calculator tests/CalculatorTest.php → CalculatorTest
setUp() と tearDown()
各テストメソッドの前後にコードを実行します。setUp() を使ってテスト対象のオブジェクトを作成します。
<?php
protected function setUp(): void
{
$this->calc = new Calculator();
}
public function test_add(): void
{
$this->assertEquals(7, $this->calc->add(3, 4));
}setUpBeforeClass() と tearDownAfterClass()
クラス内のすべてのテストの前後に、コードを1回だけ実行します。データベース接続など、コストの高いセットアップに便利です。
コードカバレッジ
カバレッジレポートを生成します(Xdebug または PCOV が必要です)。
$ vendor/bin/phpunit --coverage-html coverage/まとめ
PHPUnit を Composer の開発用依存関係としてインストールします。test_*() メソッドを持つ TestCase のサブクラスを作成し、vendor/bin/phpunit で実行します。共有するオブジェクトの作成には setUp() を使います。
クイックチェック
PHPUnit のテストクラスは、どの基底クラスを継承する必要がありますか?
よくある質問
「PHPUnitのセットアップと最初のテスト」レッスンは無料ですか?
はい。「PHPUnitのセットアップと最初のテスト」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。
「PHPUnitのセットアップと最初のテスト」で何を学びますか?
ComposerでPHPUnitをインストールし、最初のテストクラスを作成します ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
PHP Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「PHPUnitのセットアップと最初のテスト」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPHP Academyレッスンでコードを書いて実行できますか?
はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- PHPUnitのセットアップと最初のテスト
- アサーションとテストメソッド
- パラメータ化テスト用のデータプロバイダー
- PHPUnitで依存関係をモックする