Functional Test specific Assertions

Version: 4.3
Edit this page

Warning: You are browsing the documentation for Symfony 4.3, which is no longer maintained.

Read the updated version of this page for Symfony 6.0 (the current stable version).

Functional Test specific Assertions

4.3

The shortcut methods for assertions using WebTestCase were introduced in Symfony 4.3.

When doing functional tests, sometimes you need to make complex assertions in order to check whether the Request, the Response or the Crawler contain the expected information to make your test succeed.

Here is an example with plain PHPUnit:

1
2
3
4
$this->assertGreaterThan(
    0,
    $crawler->filter('html:contains("Hello World")')->count()
);

Now here is the example with the assertions specific to Symfony:

1
$this->assertSelectorTextContains('html', 'Hello World');

Note

These assertions only work if a request has been made with the Client in a test case extending the WebTestCase class.

Assertions Reference

Response

  • assertResponseIsSuccessful()
  • assertResponseStatusCodeSame()
  • assertResponseRedirects()
  • assertResponseHasHeader()
  • assertResponseNotHasHeader()
  • assertResponseHeaderSame()
  • assertResponseHeaderNotSame()
  • assertResponseHasCookie()
  • assertResponseNotHasCookie()
  • assertResponseCookieValueSame()

Request

  • assertRequestAttributeValueSame()
  • assertRouteSame()

Browser

  • assertBrowserHasCookie()
  • assertBrowserNotHasCookie()
  • assertBrowserCookieValueSame()

Crawler

  • assertSelectorExists()
  • assertSelectorNotExists()
  • assertSelectorTextContains()
  • assertSelectorTextSame()
  • assertSelectorTextNotContains()
  • assertPageTitleSame()
  • assertPageTitleContains()
  • assertInputValueSame()
  • assertInputValueNotSame()

Troubleshooting

These assertions will not work with symfony/panther as they use the Request and Response objects from the HttpFoundation component, and the KernelBrowser from the FrameworkBundle. Panther only uses the BrowserKit component.

This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.