Question
Dans le cadre du développement d'une application web au sein de votre entreprise, vous avez la charge de mettre en place un message de bienvenue personnalisé en fonction du genre de l'utilisateur.
Ainsi :
Une femme aura un message du type « Bienvenue Mme ... » suivi de son nom,
Un homme aura un message du type « Bienvenue M. ... » suivi de son nom.
La première partie de cet exercice consistera donc à implémenter cette méthode au sein d'une classe WelcomeMessage
dans le répertoire src/Util
de votre application Symfony.
Dans une classe dédiée, implémentez une méthode chargée de tester la méthode écrite dans la première partie de l'exercice et utilisant un Data Provider pour tester toutes les configurations possibles.
Solution
La classe à tester :
<?php
# src/Util/WelcomeMessage.php
namespace App\Util;
class WelcomeMessage {
public function welcome($name, $gender) {
if($gender === "Homme") {
return 'Bienvenue M. ' . $name;
} else {
return 'Bienvenue Mme ' . $name;
}
}
}
La classe de test :
<?php
# tests/Util/WelcomeMessageTest.php
namespace Tests\Util;
use App\Util\WelcomeMessage;
use PHPUnit\Framework\TestCase;
class WelcomeMessageTest extends TestCase {
/**
* @dataProvider welcomeProvider
*/
public function testWelcome($name, $gender, $expected) {
$welcomeMessage = new WelcomeMessage();
$this->assertSame($expected, $welcomeMessage->welcome($name, $gender));
}
public function welcomeProvider()
{
return [
["Chris", "Homme", "Bienvenue M. Chris"],
["Fanny", "Femme", "Bienvenue Mme Fanny"]
];
}
}