PHPUnit和Symfony

问题描述 投票:0回答:2

我正在尝试测试我的indexAction方法,只是为了测试我的页面中是否有一些精确的单词。

所以我有这个

public function testIndexAction()
{
    $client = static::createClient();
    $crawler = $client->request('GET', 'conducteurs');
    $this->assertSame(1, $crawler->filter('html:contains("Liste des conducteurs")')->count());
}

在我的页面中,有“Liste des conducteurs”,但我的测试失败了。你知道为什么吗 ?是否有针对phpunit.xml的精确设置?

html symfony phpunit
2个回答
0
投票

字符串可能不止一次出现。您可以将断言更改为

$this->assertGreaterThan(0,$crawler->filter('html:contains("Liste des conducteurs")')->count());

0
投票

我无法猜测你的应用程序发生了什么,因为我还没有看到它。但是,我能做的是建议你如何调试它并改进你的测试以便给你更好的反馈。

在开始查看响应内容之前,您可以确保响应成功。您还可以将响应内容用作断言消息,因此如果断言失败,phpunit将显示内容。

public function testIndexAction()
{
    $client = static::createClient();
    $crawler = $client->request('GET', 'conducteurs');

    $this->assertSame(200, $client->getResponse()->getStatusCode(), $client->getResponse()->getContent());
    $this->assertSame(1, $crawler->filter('html:contains("Liste des conducteurs")')->count(), $client->getResponse()->getContent());
}

如果状态代码不是200,但也不是错误,则可能是您的网站进行了重定向(301/302),在这种情况下,您可以自动执行follow all redirects

$client->followRedirects();

或遵循特定的重定向:

$crawler = $client->followRedirect();
© www.soinside.com 2019 - 2024. All rights reserved.