現在の位置: ホーム> 最新記事一覧> 単体テストでバイナリ入力をmockし、bindec()関数の出力を検証する方法は?

単体テストでバイナリ入力をmockし、bindec()関数の出力を検証する方法は?

M66 2025-07-18

PHP開発中、 bindec()関数は、バイナリ文字列を10進数に変換するためによく使用されます。コードの正しさを確保するために、通常、機能動作を検証するための単体テストを記述します。この記事では、単体テストでバイナリ入力をシミュレートし、 bindec()関数の出力結果を検証する方法を紹介します。

1。bindec ()関数の概要

bindec()は、バイナリ文字列を対応する10進整数に変換するPHPビルトイン関数です。たとえば、:

 <?php
echo bindec("1101"); // 出力 13

2。バイナリ入力をシミュレートする必要があるのはなぜですか?

実際のプロジェクトでは、バイナリデータは、ファイル、ネットワークデータストリーム、ユーザー入力などの複数のチャネルから得られる場合があります。 Bindec()がさまざまな入力シナリオで安定して動作できるようにするために、単体テストでは境界条件と例外入力をカバーする必要があります。

3. phpunitを使用して、ユニットテストの例を記述します

次の例は、phpunitを使用して複数のバイナリ入力をシミュレートし、 Bindec()出力が予想どおりであることを確認する方法を示しています。

 <?php
use PHPUnit\Framework\TestCase;

class BindecTest extends TestCase
{
    /**
     * さまざまなテストケースを提供します,通常の入力と異常な入力が含まれます
     */
    public function binaryProvider()
    {
        return [
            ['0', 0],
            ['1', 1],
            ['1010', 10],
            ['11111111', 255],
            ['100000000', 256],
            ['invalid', 0], // 非バイナリ文字列 bindec 戻る0
            ['', 0],        // 空字符串戻る0
        ];
    }

    /**
     * @dataProvider binaryProvider
     */
    public function testBindecConversion($binary, $expected)
    {
        $result = bindec($binary);
        $this->assertSame($expected, $result, "Binary input: $binary");
    }
}

説明:

  • BinaryProvider()メソッドは、通常のバイナリ数、空の文字列、違法な文字列をカバーする複数のテストデータセットを定義します。

  • @Dataproviderアノテーションを介してテストデータをテスト方法に渡し、 Bindec()の返品値を1つずつ確認します。

  • 違法なバイナリ文字列の場合、 bindec()は0を返します。これは組み込みの動作です。

4。テストを実行します

Project Directory構造とphPunit構成の準備が整っていると仮定すると、コマンドを実行します。

 php vendor/bin/phpunit tests/BindecTest.php

すべてのアサーションが渡された場合、それはbindec()が複数の入力で正常に実行されることを意味します。

5。概要

この記事では、PHPユニットテストでのバイナリ入力をシミュレーションし、データプロバイダーを介して複数の文字列をbindec()関数に渡し、出力結果を確認する方法について説明します。この方法は、 bindec()だけでなく、類似の組み込みまたはカスタム関数のボーダーおよび例外入力テストにも適しています。