Premiers pas
On va chercher à simuler une navigation.
- On génère une requête
- On teste la réponse
- On provoque une action générant une requête
- etc
On va hériter de la classe WebTestCase
<?php namespace Tests\Controller; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class UnitTestsControllerTest extends WebTestCase { public function testLister() { // Création du client (simule le navigateur) $client = static::createClient(); // Le crawler récupère le contenu si la réponse est en HTML ou XML $crawler = $client->request('GET', 'cours/diablo/profile'); // On filtre les éléments prsents $this->assertGreaterThan(0, $crawler->filter('html:contains("parangon")')->count()); } } ?>
Poursuivre la navigation
Pour cliquer sur un lien :
// On récupère le lien d'ajout d'un profil $link = $crawler->filter('a:contains("Ajouter")')->eq(1)->link(); $crawler = $client->click($link);
On remplit le formulaire
// Récupération du formulaire $form = $crawler->selectButton('submit')->form(); // Valeurs $form['DiabloForm[battleTag]'] = 'Kiwito#2408'; // Soumission du formulaire $crawler = $client->submit($form);