Estoy probando el test que se crea en el DefaultController de un nuevo bundle con Symfony 2.8.9:
class DefaultControllerTest extends WebTestCase { public function testIndex() { $client = static::createClient(); $crawler = $client->request('GET', '/'); $this->assertContains('Hello World', $client->getResponse()->getContent()); } }
Estoy ejecutando solo los test de esa clase Default:
php phpunit-5.5.4.phar -c app src/GestionPagoBundle/Tests/Controller/DefaultControllerTest.php
Además he probado comparar el status code:
$this->assertEquals(200, $client->getResponse()->getStatusCode());
Ambas respuestas son failed puesto que no encuenta la ruta.
1) GestionPagoBundle\Tests\Controller\DefaultControllerTest::testIndex Failed asserting that 404 matches expected 200. /var/www/html/Proyecto/src/GestionPagoBundle/Tests/Controller/DefaultControllerTest.php:15
Debería configurar algo específico en el phpunit.xml.dist? PD: Mi kernel no ha sido movido hacia ningún lugar.
Respuestas
El ejemplo que muestras está claro que debería funcionar. No se qué puede estar pasando para que la ruta de la portada devuelva 404
, pero en estos casos muy raros, una posible solución puede ser volcar toda la información de la respuesta recibida, a ver si ves algún mensaje que te pueda dar pistas sobre lo que está pasando:
class DefaultControllerTest extends WebTestCase { public function testIndex() { $client = static::createClient(); $crawler = $client->request('GET', '/'); // añade esta línea var_dump($client->getResponse()); $this->assertContains('Hello World', $client->getResponse()->getContent()); } }
@javiereguiluz
Buen día, creo que sería importante tambien que verificaras si la ruta carga desde el navegador.
Porque puede que hayas colocado un prefix en el import de las rutas del controlador, y si es así no va a funcionar.
Con el siguiente comando puedes ver las rutas que tienes disponibles:
php appc/console debug:router
Si puedes muestra el resultado de dicho comando. Saludos!
@manuel_j555