Pendant le développement de PHP, la fonction Bindec () est souvent utilisée pour convertir les chaînes binaires en nombres décimaux. Pour assurer l'exactitude du code, nous écrivons généralement des tests unitaires pour vérifier le comportement de la fonction. Cet article présentera comment simuler l'entrée binaire dans les tests unitaires et vérifiera les résultats de sortie de la fonction Bindec () .
Bindec () est une fonction intégrée PHP qui convertit les cordes binaires en entiers décimaux correspondants, par exemple:
<?php
echo bindec("1101"); // Sortir 13
Dans les projets réels, les données binaires peuvent provenir de plusieurs canaux, tels que le fichier, le flux de données réseau ou l'entrée utilisateur. Afin de s'assurer que Bindec () peut fonctionner de manière stable dans différents scénarios d'entrée, les tests unitaires doivent couvrir les conditions aux limites et l'entrée d'exception.
L'exemple suivant montre comment simuler plusieurs entrées binaires avec PHPUnit et vérifier que la sortie Bindec () est comme prévu.
<?php
use PHPUnit\Framework\TestCase;
class BindecTest extends TestCase
{
/**
* Fournir une variété de cas de test,Comprend des entrées normales et anormales
*/
public function binaryProvider()
{
return [
['0', 0],
['1', 1],
['1010', 10],
['11111111', 255],
['100000000', 256],
['invalid', 0], // Chaîne non binaire bindec retour0
['', 0], // 空字符串retour0
];
}
/**
* @dataProvider binaryProvider
*/
public function testBindecConversion($binary, $expected)
{
$result = bindec($binary);
$this->assertSame($expected, $result, "Binary input: $binary");
}
}
La méthode BinaryProvider () définit plusieurs ensembles de données de test, couvrant les nombres binaires ordinaires, les chaînes vides et les chaînes illégales.
Passez les données de test dans la méthode de test via l'annotation @dataprovider et vérifiez la valeur de retour de bindec () une par une.
Pour les chaînes binaires illégales, Bindec () renvoie 0, ce qui est son comportement intégré.
En supposant que la structure du répertoire de projet et la configuration de PHPUnit sont prêtes, exécutez la commande:
php vendor/bin/phpunit tests/BindecTest.php
Si toutes les assertions sont passées, cela signifie que Bindec () fonctionne normalement sous plusieurs entrées.
Cet article décrit comment simuler l'entrée binaire dans les tests unitaires PHP, passer plusieurs chaînes dans la fonction religtec () via le fournisseur de données et vérifier ses résultats de sortie. Cette méthode convient non seulement à Bindec () , mais aussi aux tests d'entrée de bordure et d'exception sur des fonctions intégrées ou personnalisées similaires.