Aktueller Standort: Startseite> Neueste Artikel> Wie verspotte ich den Binäreingang in Einheitstests und überprüfen Sie die Ausgabe der Funktion BindEc ()?

Wie verspotte ich den Binäreingang in Einheitstests und überprüfen Sie die Ausgabe der Funktion BindEc ()?

M66 2025-07-18

Während der PHP -Entwicklung wird die Bindec () -Funktion häufig verwendet, um binäre Zeichenfolgen in Dezimalzahlen umzuwandeln. Um die Richtigkeit des Codes zu gewährleisten, schreiben wir normalerweise Unit -Tests, um das Funktionsverhalten zu überprüfen. In diesem Artikel wird die Simulation der Binäreingabe in Unit -Tests eingeführt und die Ausgangsergebnisse der Bindec () -Funktion überprüft.

1. Einführung in die Funktion BindEc ()

Binec () ist eine PHP-integrierte Funktion, die binäre Zeichenfolgen in entsprechende Dezimalzahler umwandelt, zum Beispiel:

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

2. Warum müssen wir die Binäreingabe simulieren?

In tatsächlichen Projekten können Binärdaten aus mehreren Kanälen stammen, z. B. Datei-, Netzwerkdatenstrom- oder Benutzereingaben. Um sicherzustellen, dass Binec () in verschiedenen Eingangsszenarien stabil funktionieren kann, sollten Unit -Tests die Randbedingungen und die Ausnahmeeingabe abdecken.

3.. Verwenden Sie Phpunit, um Unit -Testbeispiele zu schreiben

Das folgende Beispiel zeigt, wie mehrere Binäreingänge mit Phpunit simulieren, und verifizieren, dass der Ausgang von Bindec () wie erwartet ist.

 <?php
use PHPUnit\Framework\TestCase;

class BindecTest extends TestCase
{
    /**
     * Bereitstellung einer Vielzahl von Testfällen,Beinhaltet normale und abnormale Inputs
     */
    public function binaryProvider()
    {
        return [
            ['0', 0],
            ['1', 1],
            ['1010', 10],
            ['11111111', 255],
            ['100000000', 256],
            ['invalid', 0], // Nicht-binäre Zeichenfolge bindec zurückkehren0
            ['', 0],        // 空字符串zurückkehren0
        ];
    }

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

veranschaulichen:

  • Die BinaryProvider () -Methode definiert mehrere Tests von Testdaten und deckt gewöhnliche Binärzahlen, leere Zeichenfolgen und illegale Zeichenfolgen ab.

  • Geben Sie die Testdaten über die @Dataprovider -Annotation an die Testmethode weiter und überprüfen Sie den Rückgabewert von Binesec () nacheinander.

  • Für illegale binäre Zeichenfolgen gibt Binec () 0 zurück, was das integrierte Verhalten ist.

4. Führen Sie den Test durch

Führen Sie den Befehl aus:

 php vendor/bin/phpunit tests/BindecTest.php

Wenn alle Behauptungen übergeben werden, bedeutet dies, dass Binec () normalerweise unter mehreren Eingängen durchgeführt wird.

5. Zusammenfassung

In diesem Artikel wird beschrieben, wie die Binäreingabe in PHP -Unit -Tests simuliert, mehrere Zeichenfolgen über den Datenanbieter in die Funktion BindEc () übergeben und deren Ausgabeergebnisse überprüfen. Diese Methode ist nicht nur für Bindec () , sondern auch für Rand- und Ausnahmeeingangstests bei ähnlichen integrierten oder benutzerdefinierten Funktionen geeignet.