Tester en même temps un getter et un setter dans un test PHPUnit
Publié le 26/10/2022 • Actualisé le 26/10/2022
Dans ce bout de code, nous voyons comment tester en même temps un getter et un setter dans un test unitaire PHPUnit. Cette petite astuce nous permet de gagner un peu d'espace en testant les deux fonctions sur la même ligne grâce à l'interface fluide de cette classe. Vous pouvez utiliser un fournisseur de données afin d'éviter de dupliquer la valeur testée.
<?php
declare(strict_types=1);
namespace App\Tests\Unit\Entity;
use App\Entity\Article;
use PHPUnit\Framework\TestCase;
final class ArticleTest extends TestCase
{
public function testArticleIcon(): void
{
self::assertNull((new Article())->getIcon()); // initial value, field is nullable
self::assertSame('icon', (new Article())->setIcon('icon')->getIcon());
}
/**
* @return iterable<array{0: string}>
*/
public function providerForArticleIconWithProvider(): iterable
{
yield ['foo'];
yield [''];
}
/**
* @dataProvider providerForArticleIconWithProvider
*/
public function testArticleIconWithProvider(string $value): void
{
self::assertSame($value, (new Article())->setIcon($value)->getIcon());
}
}
Plus sur Stackoverflow Plus sur le web Snippet aléatoire
A vous de jouer !
Ces articles vous ont été utiles ? Vous pouvez m'aider à votre tour de plusieurs manières : (cliquez sur le lien "reply" dans à droite pour me contacter )
- Me remonter des erreurs ou typos.
- Me remonter des choses qui pourraient être améliorées.
- Aimez et repostez !
- Suivez moi sur Bluesky 🦋
- Inscrivez-vous au flux RSS.
- Cliquez sur les boutons Plus sur Stackoverflow pour me faire gagner des badges "annonceur" 🏅.
Merci et à très bientôt sur Strangebuzz ! 😉
