2016-06-22 10 views
0

PHPの関数テストについてもう少し知るために、私はSymfonyのPHPUnitでダミーテストを書いています。リダイレクトテストはリンクをクリックしても受け入れられません

ここに問題があります。

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

そして、先のメッセージ:これは私のリンクです

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

: これは私の試験方法である

Haha, you've been redirect ! 

私は

redirect2 

があることを前提としていmの名前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 falseがtrueであることをアサートできませんでした。 リダイレクトされていないことを意味しますか? ありがとう、 – Telest

+0

はい、リダイレクトされていません。ところで、あなたがクリックした後に起こっているページがリダイレクトレスポンスを発行しない限り(不可能ではありませんが)、リダイレクトをクリックした後にリダイレクトするのは普通ではありません。 –

+0

説明をありがとう。 "$ client-> followRedirect();をテストするためにどのようなテストを行うことができますか?" ? – Telest

関連する問題