Cours 24 - Tests unitaires

Objectifs

Déroulement

  1. Introduction
  2. Exemple concret
  3. Faire exercice 24

Documentations

Écoutez la vidéo suivante

Allez consulter la doc de PHPUnit
Plus d'infos sur PHPUnit ici

Installation préliminaire

Vous devez installer l'installation de Composer

À l'aide de composer, dans le terminal de votre projet, on va exécuter la commande suivante:

composer require --dev phpunit/phpunit ^11

Cette commande va installer tout ce qui est nécessaire à PHPUnit dans un dossier nommer vendor

Pour vérifier que tout est ok:

./vendor/bin/phpunit --version

Vous devriez voir:

PHPUnit 11.1.3 by Sebastian Bergmann and contributors.

Exemple concret

Fonctions à tester

<?php

function moyenne(array $numbers):float {
    return array_sum($numbers) / count($numbers);
}

function mediane(array $numbers):float {
    sort($numbers);
    $size = count($numbers);
    if ($size % 2) {
        return $numbers[$size / 2];
    } else {
        return mediane(
            array_slice($numbers, ($size / 2) - 1, 2)
        );
    }
}
?>

Créer les tests

<?php
require_once "includes/functions.php";

use PHPUnit\Framework\TestCase;

class functionsTest extends TestCase
{

    public function testMoyenne(){
        // Arrange
        $numbers = [3, 7, 6, 1, 5];
        // Act
        $result = moyenne($numbers);
        // Assert
        $this->assertEquals(4.4, $result, "Erreur dans le calcul d'une moyenne!");
    }

    public function testMediane(){        
        // Arrange
        $numbers = [3, 7, 6, 1, 5];
        // Act
        $result = mediane($numbers);
        // Assert
        $this->assertEquals(4, $result, "Erreur dans le calcul d'une médiane!");
    }
}
?>

Faire rouler les tests

Dans le terminal de VS Code, roulez la commande:

./vendor/bin/phpunit tests

Vous devriez voir les résultats!