Position actuelle: Accueil> Derniers articles> Comment se moquer de l'entrée binaire dans les tests unitaires et vérifier la sortie de la fonction Bindec ()?

Comment se moquer de l'entrée binaire dans les tests unitaires et vérifier la sortie de la fonction Bindec ()?

M66 2025-07-18

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 () .

1. INTRODUCTION À BINSEC () Fonction

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

2. Pourquoi devons-nous simuler l'entrée binaire?

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.

3. Utilisez un phpunit pour écrire des exemples de test unitaires

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");
    }
}

illustrer:

  • 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é.

4. Exécutez le test

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.

5. Résumé

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.