2016-06-22 60 views
0

我正在用PHPUnit編寫一些虛擬測試用於Symfony,以便更多地瞭解PHP中的函數測試。點擊一個鏈接後,重定向測試不會通過

這是問題所在。 這是我的測試方法:

//Redirecting test by clicking on href 
public function testRedirect() { 
    $client = static::createClient(); 
    $crawler = $client->request('GET', '/redirect'); 

    $link = $crawler->selectLink('Click me !')->link(); 
    $client->click($link); 

    $crawler2 = $client->followRedirect(); 
    $this->assertTrue(
      $client->getResponse()->isRedirect() 
    ); 
    $this->assertTrue($crawler2->filter('html:contains("Haha, you\'ve been redirect !")')->count() > 0); 
} 

這是我的鏈接:

<a href="{{ path('redirect2') }}">Click me !</a> 

和目的地的消息:

Haha, you've been redirect ! 

我認爲

redirect2 

是米的名字y路線。

測試給我:

1) AppBundle\Tests\Controller\DefaultControllerTest::testRedirect 
LogicException: The request was not redirected. 

所以我的問題是:是HREF認爲作爲一個重定向或不?

在此先感謝! Telest,

回答

0

當你按照重定向,你已經在「下一頁」頁面。只要在斷言後移動$crawler2 = $client->followRedirect();

+0

問候, 感謝您的回答。 我試過了你的解決方案,但是我收到了以下消息: 「1)AppBundle \ Tests \ Controller \ DefaultControllerTest :: testRedirect Failed assert that false is true。」 這是否意味着它不被重定向? 謝謝, – Telest

+0

是的,它沒有被重定向。順便說一下,點擊後重新定向並不常見,除非點擊發出重定向響應之後發生的頁面(並非不可能,但不太可能) –

+0

感謝您的解釋。 我可以做什麼樣的測試以便測試「$ client-> followRedirect();」 ? – Telest

相關問題