.. index:: single: Tests; Assertions
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.
The following example uses plain PHPUnit to assert that the response redirects to a certain URL:
$this->assertSame(301, $client->getResponse()->getStatusCode()); $this->assertSame('https://example.com', $client->getResponse()->headers->get('Location'));
This is the same example using the assertions provided by Symfony:
$this->assertResponseRedirects('https://example.com', 301);
Note
The following assertions only work if a request has been made with the
Client
in a test case extending the WebTestCase
class.
assertResponseIsSuccessful()
assertResponseStatusCodeSame()
assertResponseRedirects()
assertResponseHasHeader()
assertResponseNotHasHeader()
assertResponseHeaderSame()
assertResponseHeaderNotSame()
assertResponseHasCookie()
assertResponseNotHasCookie()
assertResponseCookieValueSame()
assertResponseFormatSame()
(the response format is the value returned by the :method:`Symfony\\Component\\HttpFoundation\\Response::getFormat` method).
.. versionadded:: 5.3 The ``assertResponseFormatSame()`` method was introduced in Symfony 5.3.
Note
The following assertions only work if a request has been made with the
Client
in a test case extending the WebTestCase
class.
assertRequestAttributeValueSame()
assertRouteSame()
Note
The following assertions only work if a request has been made with the
Client
in a test case extending the WebTestCase
class.
assertBrowserHasCookie()
assertBrowserNotHasCookie()
assertBrowserCookieValueSame()
Note
The following assertions only work if a request has been made with the
Client
in a test case extending the WebTestCase
class. In addition,
they are not available when using symfony/panther for end-to-end testing.
assertSelectorExists()
assertSelectorNotExists()
assertSelectorTextContains()
(note: it only checks the first selector occurrence)assertSelectorTextSame()
(note: it only checks the first selector occurrence)assertSelectorTextNotContains()
(note: it only checks the first selector occurrence)assertPageTitleSame()
assertPageTitleContains()
assertInputValueSame()
assertInputValueNotSame()
assertCheckboxChecked()
assertCheckboxNotChecked()
assertFormValue()
assertNoFormValue()
.. versionadded:: 5.2 The ``assertCheckboxChecked()``, ``assertCheckboxNotChecked()``, ``assertFormValue()`` and ``assertNoFormValue()`` methods were introduced in Symfony 5.2.
.. versionadded:: 5.1 Starting from Symfony 5.1, the following assertions no longer require to make a request with the ``Client`` in a test case extending the ``WebTestCase`` class.
assertEmailCount()
assertQueuedEmailCount()
assertEmailIsQueued()
assertEmailIsNotQueued()
assertEmailAttachmentCount()
assertEmailTextBodyContains()
assertEmailTextBodyNotContains()
assertEmailHtmlBodyContains()
assertEmailHtmlBodyNotContains()
assertEmailHasHeader()
assertEmailNotHasHeader()
assertEmailHeaderSame()
assertEmailHeaderNotSame()
assertEmailAddressContains()