我寫了一個響應監聽器來繞過一些特定的內容類型,我想知道什麼是UnitTest的最佳方式。如何測試Symfony2中的響應頭?
你有什麼線索可以做到嗎?
我需要創建控制器夾具來測試嗎?
在單元測試套件中是否允許進行函數測試?
我寫了一個響應監聽器來繞過一些特定的內容類型,我想知道什麼是UnitTest的最佳方式。如何測試Symfony2中的響應頭?
你有什麼線索可以做到嗎?
我需要創建控制器夾具來測試嗎?
在單元測試套件中是否允許進行函數測試?
爲聽衆編寫單元測試相當簡單。你只需要模擬聽衆依賴的對象。在Symfony源代碼中查找示例測試。
另一種方法可能是編寫functional test。
從文檔,這裏是一個單元測試:
// 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網站將最好使用功能性瀏覽器測試框架進行測試。
好運
您可以使用此。
$logger = $this->client->getContainer()->get('logger');
$logger->info("data->" . $response->headers->get("Location"));
對於任何未來看到這個問題的人,我有一個類似的問題 - 如何測試內容類型。我在斷言中使用了:$ client-> getResponse() - > headers-> get('content_type')'。 – b85411