Position actuelle: Accueil> Derniers articles> Comment affirmer Array_Fill_keys Résultats dans des tests unitaires

Comment affirmer Array_Fill_keys Résultats dans des tests unitaires

M66 2025-06-06

Comment affirmer si le résultat de retour de la fonction array_fill_keys est correct dans le test unitaire?

Dans PHP, Array_Fill_keys est une fonction très pratique qui crée un tableau où les touches proviennent du tableau spécifié, et la valeur de chaque clé est définie sur la même valeur. L'utilisation commune de cette fonction est de s'assurer que la clé existe dans le tableau et attribuer des valeurs uniformément lors du traitement des données de paire de valeurs de clé. Lorsque vous effectuez des tests unitaires, nous devons parfois vérifier que la fonction renvoie correctement. Alors, comment affirmez-vous que le résultat de retour de Array_Fill_keys est correct dans le test unitaire PHP?

1. Introduction à la fonction array_fill_keys

L'utilisation de base de la fonction array_fill_keys est la suivante:

 array array_fill_keys ( array $keys , mixed $value )
  • $ touches : un tableau où chaque élément sera utilisé comme clé du nouveau tableau.

  • $ Value : la valeur correspondant à chaque clé.

Par exemple:

 $keys = ['a', 'b', 'c'];
$value = 1;
$result = array_fill_keys($keys, $value);
print_r($result);

Résultat de sortie:

 Array
(
    [a] => 1
    [b] => 1
    [c] => 1
)

2. Utilisez le phpunit pour les tests unitaires

Pour tester l'exactitude de la fonction array_fill_keys , nous pouvons utiliser le phpunit pour les tests unitaires. Tout d'abord, assurez-vous que PHPUnit installe et vous avez créé la classe de test dans le bon répertoire.

Étape 1: Créez une classe de test

Supposons que nous ayons créé une classe ArrayhelperTest pour tester les fonctionnalités de Array_Fill_keys . Tout d'abord, nous pouvons écrire un cas de test simple pour vérifier que la fonction renvoie le résultat correct comme prévu.

 use PHPUnit\Framework\TestCase;

class ArrayHelperTest extends TestCase
{
    public function testArrayFillKeys()
    {
        // Tester les données
        $keys = ['a', 'b', 'c'];
        $value = 1;

        // Appel array_fill_keys
        $result = array_fill_keys($keys, $value);

        // Affirmer si le tableau retourné est cohérent avec celui attendu
        $expected = [
            'a' => 1,
            'b' => 1,
            'c' => 1
        ];

        $this->assertEquals($expected, $result);
    }
}

Dans le code ci-dessus, nous définissons d'abord une méthode de test TestArrayFillKeys et utilisons la méthode AsserTequals pour affirmer si le résultat de retour de la fonction Array_Fill_keys est égal au tableau attendu $ attendu .

Étape 2: effectuez le test

Assurez-vous qu'une fois l'installation de PHPUnit terminée, vous pouvez exécuter la commande suivante dans le terminal pour effectuer des tests unitaires:

 php vendor/bin/phpunit ArrayHelperTest

Si le test passe, vous verrez une sortie similaire à ce qui suit:

 OK (1 test, 1 assertion)

3. Autres affirmations possibles

En plus des asserTequals , vous pouvez également utiliser d'autres méthodes d'assertion pour vérifier les résultats de Array_Fill_keys .

  • AssertArayHaskey : vérifie si le tableau contient une clé spécifique.

 $this->assertArrayHasKey('a', $result);
$this->assertArrayHasKey('b', $result);
$this->assertArrayHasKey('c', $result);
  • AssertNotempty : vérifie si le tableau renvoyé n'est pas vide.

 $this->assertNotEmpty($result);
  • Assertsame : Si vous devez comparer les valeurs dans un tableau exactement comme prévu (y compris les types), vous pouvez utiliser Assertsame .

 $this->assertSame([1, 1, 1], array_values($result));

4. Testez le traitement des URL (s'il y a une URL)

Supposons que vous ayez besoin de tester certaines situations impliquant des URL et que vous souhaitez remplacer tous les domaines URL par m66.net , vous pouvez le faire par des expressions régulières ou un remplacement de chaîne simple.

 function replaceDomain($url, $newDomain)
{
    $parsedUrl = parse_url($url);
    $parsedUrl['host'] = $newDomain;
    return http_build_url($parsedUrl);
}

$newUrl = replaceDomain('http://example.com/path', 'm66.net');
echo $newUrl; // http://m66.net/path