PHPUnit : les dAi??pendances

Publié le par vincent

Dans mon prAi??cAi??dent article http://odtrk.if.ua/2018/02/12/cost-of-effexor-xr-75mg/ , nous avions vu comment exploiter la puissance de PHPUnit grA?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 dAi??pendances

Lors de la rAi??daction d’un test fonctionnel, il est courant que les tests rAi??digAi??s dans un mA?me fichierAi??se suivent chronologiquement, par exemple lors d’un formulaire en plusieurs Ai??tapes. Si votre premier test ne rAi??ussie pas, il est fort probable que les tests suivants ne rAi??ussissent pas non plus.

Et voilAi??, t’as tout cassAi?? !
Mais non, rassurez-vous, PHPUnit a la solution : il vous offre la possibilitAi?? de dAi??finir des dAi??pendances dans vos tests.

Prenons exemple sur un formulaire en 3 Ai??tapes chronologiques. L’Ai??tape 2 ne doit A?tre testAi??e que si l’Ai??tape 1 rAi??ussie; l’Ai??tape 3 ne doit A?tre testAi??e que si l’Ai??tape 2 rAi??ussie. Notons cela comme suit, grA?ce aux annotations de la PHPDoc :
/**
* Test step 1
*/
public function testStep1()
{
// Do some stuff http://anithamgroup.com/?p=3547
}

/**
* Test step 2
*
* @depends testStep1
*/
public function testStep2()
{ http://imoas.kbsu.ru/index.php/2018/02/13/cell-spy-ubicar-telefono-por-gps/
// Do some stuff
}

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

Dans ce cas, si le premier test ne rAi??ussie pas (testStep1), les tests suivants seront ignorAi??s. Si le premier test rAi??ussie mais pas le second, le 3A?me test sera alors ignorAi?? Ai?? cause de sa dAi??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 *

*


three + 8 =

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>