2012-06-16 2 views
2

Я написал прослушиватель ответов, чтобы обойти некоторые конкретные типы контента, и мне интересно, что является лучшим способом для UnitTest.Как проверить заголовки ответов в Symfony2?

У вас есть ключ к тому, как я мог это сделать?

Должен ли я создать контрольный прибор для проверки против?

Проводятся ли функциональные тесты внутри набора тестов модулей?

+0

Для всех, кто видит этот вопрос в будущем, у меня был похожий - как проверить тип содержимого. Я использовал это: '$ client-> getResponse() -> headers-> get ('content_type')' внутри утверждения. – b85411

ответ

1

Письменный тест для слушателей довольно прост. Вам просто нужно высмеять те объекты, от которых зависит ваш слушатель. Посмотрите примеры тестов в исходном коде Symfony.

Другой способ, возможно, написать functional test.

1

Из документов, вот тест Единица измерения:

// src/Acme/DemoBundle/Tests/Utility/CalculatorTest.php 
namespace Acme\DemoBundle\Tests\Utility; 

use Acme\DemoBundle\Utility\Calculator; 

    class CalculatorTest extends \PHPUnit_Framework_TestCase 
    { 
     public function testAdd() 
     { 
      $calc = new Calculator(); 
      $result = $calc->add(30, 12); 

      // assert that your calculator added the numbers correctly! 
      $this->assertEquals(42, $result); 
     } 
    } 

Вот функциональный тест:

// src/Acme/DemoBundle/Tests/Controller/DemoControllerTest.php 
namespace Acme\DemoBundle\Tests\Controller; 

use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; 

class DemoControllerTest extends WebTestCase 
{ 
    public function testIndex() 
    { 
     $client = static::createClient(); 

     $crawler = $client->request('GET', '/demo/hello/Fabien'); 

     $this->assertGreaterThan(
      0, 
      $crawler->filter('html:contains("Hello Fabien")')->count() 
     ); 
    } 
} 

Пожалуйста, имейте в виду, что функциональный тест не может проверить Ajax и т.д. так тяжелый Ajax сайт лучше всего будет протестирован с использованием функциональной платформы для проверки браузера.

Удача

0

Вы можете использовать это.

  $logger = $this->client->getContainer()->get('logger'); 
      $logger->info("data->" . $response->headers->get("Location")); 
Смежные вопросы