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