Tester son site web avec ๐๐๐ง๐ญ๐ก๐๐ซ
๐ Tout.e dรฉveloppeur/dรฉveloppeuse ๐๐ก๐ฉ/๐๐ฒ๐ฆ๐๐จ๐ง๐ฒ a entendu parler et a pratiquรฉ des tests unitaires avec ๐๐ก๐ฉ๐๐ง๐ข๐ญ. Cโest devenu au fil du temps une brique essentielle du dรฉveloppement Web et des CI/CD.
๐ Tests unitaires, tests dโintรฉgration, tests fonctionnels (ou tests End To End). Je ne vais pas revenir sur les dรฉfinitions je vous renvoie ร un article de Thibaud Duthoit qui รฉclaire sur le rรดle des uns et des autres (je vois encore des dรฉbats et confusion chez pas mal de dev).
๐ Je vais parler ici dโun outil moins connu et pourtant trรจs utile pour les tests fonctionnels : ๐๐๐ง๐ญ๐ก๐๐ซ, รงa vous parle?
Lorsque que vous utilisez les ๐๐๐๐๐๐ฌ๐ญ๐๐๐ฌ๐ de ๐๐ฒ๐ฆ๐๐จ๐ง๐ฒ, vous pouvez accรฉder ร des urls, simuler le remplissage de formulaires, cliquer sur des liens du site que vous testez. Cโest trรจs utile et รงa marche souvent...sauf que รงa nโutilise pas un vrai navigateur : on teste les objets Request et Response de Symfony, pour faire simple, ce qui est dรฉjร bien. Le problรจme, avec les WebTestCase, est que la plupart des sites actuels mรฉlangent allรจgrement ๐๐๐ et Framework ๐๐๐ฏ๐๐ฌ๐๐ซ๐ข๐ฉ๐ญ pour construire les pages. Du coup, nos WebTestCase nโaccรฉdant pas aux pages transformรฉes par le javascript, elles ne peuvent pas les tester dans ce cas de figure.
๐๐ฏ๐๐ ๐๐๐ง๐ญ๐ก๐๐ซ, ๐จ๐ง ๐ซ๐ฬ๐๐ฅ๐ข๐ฌ๐ ๐ฅ๐ ๐ฆ๐ฬ๐ฆ๐ ๐ฌ๐๐ฬ๐ง๐๐ซ๐ข๐จ ๐ช๐ฎ๐ ๐ฅ๐ ๐ง๐๐ฏ๐ข๐ ๐๐ญ๐๐ฎ๐ซ (๐ ๐ข๐ซ๐๐๐จ๐ฑ ou ๐๐ก๐ซ๐จ๐ฆ๐). Et vous savez quoi? ๐ข๐ฃ๐ด๐ต๐ณ๐ข๐ค๐ต ๐ค๐ญ๐ข๐ด๐ด ๐๐ข๐ฏ๐ต๐ฉ๐ฆ๐ณ๐๐ฆ๐ด๐ต๐๐ข๐ด๐ฆ ๐ฆ๐น๐ต๐ฆ๐ฏ๐ฅ๐ด ๐๐ฆ๐ฃ๐๐ฆ๐ด๐ต๐๐ข๐ด๐ฆ Donc tout le travail effectuรฉ avec PhpUnit nโest pas perdu, loin de la.
Pour aller au plus proche de la source, vous pouvez lire cet article : Introducing Symfony Panther