Position actuelle: Accueil> Derniers articles> Comment rédiger des tests unitaires pour la logique à l'aide d'Array_Column

Comment rédiger des tests unitaires pour la logique à l'aide d'Array_Column

M66 2025-05-12

Dans PHP, Array_Column est une fonction très utile qui extrait les données d'une colonne spécifiée d'un tableau bidimensionnel. Lorsque vous développez, en particulier lorsque vous traitez des données de tableau complexes, Array_Column peut être utilisé pour simplifier les opérations de tableau. Pour garantir la fiabilité du code, nous devons généralement rédiger des tests unitaires pour la logique à l'aide d'Array_Column .

Cet article expliquera comment rédiger des tests unitaires efficaces pour le code à l'aide de la fonction Array_Column et fournir quelques exemples pratiques.

1. Comprendre la fonction Array_Column

La fonction principale de la fonction Array_Column est d'extraire toutes les valeurs d'une colonne spécifiée à partir d'un tableau multidimensionnel et de renvoyer un tableau unidimensionnel contenant toutes les valeurs de la colonne.

grammaire:

 array_column(array $input, mixed $column_key, mixed $index_key = null): array
  • $ Entrée : le tableau à deux dimensions d'entrée.

  • $ Column_Key : Le nom de clé de la colonne qui doit être extrait (peut être la clé de l'index ou du tableau associatif).

  • $ index_key : facultatif, l'index du tableau renvoyé. Peut être une autre colonne du tableau.

Par exemple:

 $data = [
    ['id' => 1, 'name' => 'John', 'age' => 28],
    ['id' => 2, 'name' => 'Jane', 'age' => 22],
    ['id' => 3, 'name' => 'Doe', 'age' => 35],
];

$names = array_column($data, 'name');  // ['John', 'Jane', 'Doe']

2. Écrivez des tests unitaires

Lors de l'écriture de tests unitaires, notre objectif est de nous assurer que Array_Column fonctionne correctement dans tous les cas. Cela comprend la gestion de différentes structures de données, des tableaux vides et des exceptions possibles.

Écriture de tests à l'aide de phpunit

Tout d'abord, assurez-vous que le phpunit a installé et configuré. Si vous ne l'avez pas installé, vous pouvez l'installer via Composer:

 composer require --dev phpunit/phpunit

Ensuite, vous pouvez commencer à écrire des cours de test. Supposons que nous ayons une fonction ExtractColumn qui utilise Array_Column pour extraire une colonne du tableau.

 function extractColumn(array $data, $columnKey)
{
    return array_column($data, $columnKey);
}

Nous écrivons des tests unitaires pour cette fonction.

2.1 Test de base

 use PHPUnit\Framework\TestCase;

class ArrayColumnTest extends TestCase
{
    public function testExtractColumn()
    {
        $data = [
            ['id' => 1, 'name' => 'John'],
            ['id' => 2, 'name' => 'Jane'],
            ['id' => 3, 'name' => 'Doe'],
        ];

        $result = extractColumn($data, 'name');
        
        // Vérifiez que la valeur de retour est correcte
        $this->assertEquals(['John', 'Jane', 'Doe'], $result);
    }
}

Dans ce test, nous nous assurons que Array_Column extrait correctement la colonne de nom à partir du tableau.

2.2 Test de tableau vide

Nous devons également tester le traitement par Array_Column des tableaux vides.

 public function testExtractColumnWithEmptyArray()
{
    $data = [];
    
    $result = extractColumn($data, 'name');
    
    // Le tableau vide doit retourner un tableau vide
    $this->assertEmpty($result);
}

2.3 Colonne n'existe pas

Parfois, il n'y a pas de colonnes dans le tableau que vous avez demandé. À l'heure actuelle, Array_Column renverra un tableau vide.

 public function testExtractColumnWithNonExistentColumn()
{
    $data = [
        ['id' => 1, 'name' => 'John'],
        ['id' => 2, 'name' => 'Jane'],
    ];
    
    $result = extractColumn($data, 'age');
    
    // 'age' La colonne n'existe pas,Le tableau vide doit être retourné
    $this->assertEmpty($result);
}

2.4 Utilisation du paramètre index_key

Nous pouvons également tester le troisième paramètre de Array_Column , index_key , qui spécifie l'index du tableau renvoyé.

 public function testExtractColumnWithIndexKey()
{
    $data = [
        ['id' => 1, 'name' => 'John'],
        ['id' => 2, 'name' => 'Jane'],
        ['id' => 3, 'name' => 'Doe'],
    ];
    
    $result = array_column($data, 'name', 'id');
    
    // Le tableau retourné doit être 'id' Comme clé
    $this->assertEquals([1 => 'John', 2 => 'Jane', 3 => 'Doe'], $result);
}

3. Conclusion

Lors de l'écriture de tests unitaires pour la logique à l'aide de Array_Column , nous devons considérer une variété de situations, y compris des tableaux vides, des colonnes inexistantes et un traitement possible de la clé d'index. Grâce à ces tests, nous pouvons assurer la stabilité et la fiabilité du code.

Avec les fonctionnalités riches fournies par PHPUnit, nous pouvons facilement écrire des tests unitaires efficaces et complets pour le code à l'aide d'Array_Column pour s'assurer qu'il fonctionne correctement dans différentes situations.