に従うことができない私は自分のSymfony 3.2アプリケーションの機能テストを書いています、と私は外部のウェブサイトへのいくつかのリンクをテストするために、良いアイデアだと思いました。ただし、WebTestCaseクライアントが外部リンクをクリックすると、リンクをたどるのではなく元のページが返されます。symfonyの機能テストは、外部リンク
私はこのようになりますページがあります。私のテストはこのようになりますし、パス/ link_testによってアクセスされる
// views/default/link_test.html.twig
{% extends 'base.html.twig' %}
{% block body %}
<p><a href="{{ path('homepage') }}">Here</a> is a test link.</p>
<p><a href="http://ayso1447.org">There</a> is an external link.</p>
{% endblock %}
を。
namespace Tests\AppBundle;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class FollowLinkFunctionalTest extends WebTestCase
{
public function testFollowInternalLink()
{
$client = static::createClient();
$crawler = $client->request('GET', '/link_test');
$this->assertTrue($client->getResponse()->isSuccessful(), 'response status is 2xx');
$link = $crawler->selectLink('Here')->link();
$page = $client->click($link);
$this->assertTrue($client->getResponse()->isSuccessful(), 'response status is 2xx');
$this->assertContains('AYSO United New Mexico', $page->filter('h1')->eq(0)->text());
$this->assertContains('AYSO United', $page->filter('h1')->eq(1)->text());
$this->assertContains('Club News', $page->filter('h1')->eq(2)->text());
$this->assertContains('External Resources', $page->filter('h1')->eq(3)->text());
}
public function testFollowExternalLink()
{
$client = static::createClient();
$client->followRedirects(true);
$crawler = $client->request('GET', '/link_test');
$this->assertTrue($client->getResponse()->isSuccessful(), 'response status is 2xx');
$link = $crawler->selectLink('There')->link();
$page = $client->click($link);
echo $page->text();
$this->assertTrue($client->getResponse()->isSuccessful(), 'response status is 2xx');
$this->assertContains('Westside', $page->filter('h1')->eq(0)->text());
}
}
testFollowInternalLinkは成功しますが、testFollowExternalLinkは失敗します。 echo $page->text()
には、リンクされたページの内容ではなく、link_testの内容が表示されます。
何か不足していますか?機能テストで外部リンクに従うことはできないと思いますか?
ありがとうございます!