0Pricing
PHP Academy · レッスン

アサーションとテストメソッド

assertEquals、assertSame、assertNullなどのアサーションを使います

「アサーションとテストメソッド」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。

アサーションとは

アサーションは、コードの実際の出力が期待値と一致することを検証します。PHPUnit には、豊富なアサーションメソッドが用意されています。

assertEquals と assertSame

assertEquals は緩い比較(==)を使用します。assertSame は厳密な比較(===)を使用し、型と値の両方を確認します。

<?php
$this->assertEquals(0, false);      // passes (0 == false)
$this->assertSame(0, false);        // FAILS  (0 !== false)

assertTrue と assertFalse

値が正確に true または正確に false であることをテストします。

<?php
$this->assertTrue(is_string("hello"));
$this->assertFalse(is_numeric("abc"));

assertNull と assertNotNull

値が null かどうかを確認します。

<?php
$user = $repo->find(999);
$this->assertNull($user);

$user = $repo->find(1);
$this->assertNotNull($user);

assertCount

Countable な値の要素数が期待どおりであることをアサートします。

<?php
$items = $cart->getItems();
$this->assertCount(3, $items);

assertStringContainsString

文字列に部分文字列が含まれていることをアサートします(大文字と小文字を区別します)。

<?php
$html = $template->render();
$this->assertStringContainsString("<h1>Welcome</h1>", $html);

assertInstanceOf

オブジェクトが指定したクラスまたはインターフェースのインスタンスであることをアサートします。

<?php
$handler = $factory->create("email");
$this->assertInstanceOf(EmailHandler::class, $handler);

assertThrows / expectException

テスト中に例外がスローされることを期待します。

<?php
public function test_throws_on_invalid_input(): void
{
    $this->expectException(\InvalidArgumentException::class);
    $this->expectExceptionMessage("must be positive");
    new Product(-1);
}

assertArrayHasKey

配列に特定のキーが含まれていることを確認します。

<?php
$result = $api->getUser(1);
$this->assertArrayHasKey("email", $result);
$this->assertArrayHasKey("id", $result);

assertEqualsWithDelta

浮動小数点数を許容差(delta)の範囲内で比較します。

<?php
$this->assertEqualsWithDelta(3.14159, M_PI, 0.001);

カスタム失敗メッセージ

任意のアサーションの最後の引数にメッセージを渡すと、テスト失敗時の出力を改善できます。

<?php
$this->assertEquals(200, $response->status(), "Expected HTTP 200 OK response");

まとめ

厳密な等価性には assertSame、緩い比較には assertEquals を使います。また、表現力の高いテストには assertInstanceOf、assertCount、assertThrows などの専用アサーションを使います。

クイックチェック

値の型も確認するアサーションはどれですか?

よくある質問

「アサーションとテストメソッド」レッスンは無料ですか?

はい。「アサーションとテストメソッド」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。

「アサーションとテストメソッド」で何を学びますか?

assertEquals、assertSame、assertNullなどのアサーションを使います ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

PHP Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「アサーションとテストメソッド」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPHP Academyレッスンでコードを書いて実行できますか?

はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. PHPUnitのセットアップと最初のテスト
  2. アサーションとテストメソッド
  3. パラメータ化テスト用のデータプロバイダー
  4. PHPUnitで依存関係をモックする
← PHP Academyに戻る