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.
Binec () ist eine PHP-integrierte Funktion, die binäre Zeichenfolgen in entsprechende Dezimalzahler umwandelt, zum Beispiel:
<?php
echo bindec("1101"); // Ausgabe 13
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.
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");
}
}
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.
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.
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.