PHPUnit : les dépendances

Publié le par vincent

Dans mon précédent article, nous avions vu comment exploiter la puissance de PHPUnit grâce aux mocks. Pourtant, PHPUnit a bien plus d’un tour dans son sac : fouillons un peu dans son chapeau voir quel lapin en sortira.

PHPUnit : les dépendances

Lors de la rédaction d’un test fonctionnel, il est courant que les tests rédigés dans un même fichier se suivent chronologiquement, par exemple lors d’un formulaire en plusieurs étapes. Si votre premier test ne réussie pas, il est fort probable que les tests suivants ne réussissent pas non plus.

Et voilà, t’as tout cassé !
Mais non, rassurez-vous, PHPUnit a la solution : il vous offre la possibilité de définir des dépendances dans vos tests.

Prenons exemple sur un formulaire en 3 étapes chronologiques. L’étape 2 ne doit être testée que si l’étape 1 réussie; l’étape 3 ne doit être testée que si l’étape 2 réussie. Notons cela comme suit, grâce aux annotations de la PHPDoc :
/**
* Test step 1
*/
public function testStep1()
{
// Do some stuff
}

/**
* Test step 2
*
* @depends testStep1
*/
public function testStep2()
{
// Do some stuff
}

/**
* Test step 3
*
* @depends testStep2
*/
public function testStep3()
{
// Do some stuff
}

Dans ce cas, si le premier test ne réussie pas (testStep1), les tests suivants seront ignorés. Si le premier test réussie mais pas le second, le 3ème test sera alors ignoré à cause de sa dépendance.

Cette entrée a été publiée dans PHPUnit, Symfony 2 Utils, avec comme mot(s)-clef(s) , , , , . Vous pouvez la mettre en favoris avec ce permalien.



Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*


2 * six =

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>