Maison > développement back-end > tutoriel php > Comment tester unitairement la pagination d'un tableau PHP ?

Comment tester unitairement la pagination d'un tableau PHP ?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2024-05-01 13:18:01
original
892 Les gens l'ont consulté

Le guide de test unitaire de pagination de tableau PHP comprend : tester les cas extrêmes (tableau vide, numéro de page invalide) ; tester si les résultats de pagination sont corrects (première page, page du milieu, dernière page) tester si le calcul du numéro de page total est correct (le) ; le nombre d'éléments est égal à chaque page (le nombre d'éléments, le nombre d'éléments est supérieur au nombre d'éléments par page).

Comment tester unitairement la pagination dun tableau PHP ?

Guide de tests unitaires de pagination de tableaux PHP

Avant-propos

La pagination de tableaux est une opération courante qui est souvent rencontrée dans le développement. Afin de garantir l'exactitude de la fonctionnalité de pagination, il est très important d'effectuer des tests unitaires. Cet article vous guidera sur la façon d'écrire des tests unitaires pour la pagination des tableaux PHP, y compris des exemples pratiques.

Cas pratique

Supposons que nous ayons un tableau$items,需要将其分页,每页显示 10 个元素。分页函数 paginate() comme suit :

function paginate(array $items, int $page = 1, int $perPage = 10): array
{
    $totalPages = ceil(count($items) / $perPage);
    
    if ($page < 1) {
        $page = 1;
    } elseif ($page > $totalPages) {
        $page = $totalPages;
    }
    
    $offset = ($page - 1) * $perPage;
    
    return array_slice($items, $offset, $perPage);
}
Copier après la connexion

Test unitaire

  1. Test des cas extrêmes
  • Tableau vide Fr assurez-vous que la fonction de radiomessagerie passe dans un tableau vide renvoyé lorsque Tableau vide.
$this->assertEquals([], paginate([]));
Copier après la connexion
  • Numéros de page invalides : Testez le comportement de la fonction de pagination lorsqu'elle est transmise dans des numéros de page négatifs et des numéros de page en dehors de la plage totale de numéros de page.
$this->assertEquals([], paginate([], -1));
$this->assertEquals([], paginate([], 11, 10));
Copier après la connexion
  1. Testez si les résultats de pagination sont corrects
  • Première page : Assurez-vous que la fonction de pagination renvoie le premier élément de page du tableau.
$items = range(1, 100);
$this->assertEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], paginate($items));
Copier après la connexion
  • Page du milieu : Vérifiez si la fonction de pagination renvoie un élément avec le numéro de page spécifié.
$this->assertEquals([51, 52, 53, 54, 55, 56, 57, 58, 59, 60], paginate($items, 6));
Copier après la connexion
  • Dernière page : Assurez-vous que la fonction de pagination renvoie le dernier élément de page du tableau.
$this->assertEquals([91, 92, 93, 94, 95, 96, 97, 98, 99, 100], paginate($items, 10));
Copier après la connexion
  1. Testez si le calcul du numéro total de page est correct
  • Le nombre d'éléments est égal au nombre d'éléments par page : Lorsque le nombre d'éléments est égal au nombre d'éléments par page , le nombre total de pages doit être 1.
$items = range(1, 10);
$this->assertEquals(1, paginate($items, 1, 10));
Copier après la connexion
  • Le nombre d'éléments est supérieur au nombre d'éléments par page : Lorsque le nombre d'éléments est supérieur au nombre d'éléments par page, le nombre total de pages doit être arrondi.
$items = range(1, 100);
$this->assertEquals(10, paginate($items, 1, 10));
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers numéros
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal