Functional Test specific 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);
Assertions Reference¶
Response¶
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()
Request¶
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()
Browser¶
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()
Crawler¶
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()
Mailer¶
New in version 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()assertEmailAttachementCount()assertEmailTextBodyContains()assertEmailTextBodyNotContains()assertEmailHtmlBodyContains()assertEmailHtmlBodyNotContains()assertEmailHasHeader()assertEmailNotHasHeader()assertEmailHeaderSame()assertEmailHeaderNotSame()assertEmailAddressContains()