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);