Метод assertSelectorNotExists
Метод assertSelectorNotExists проверяет,
что на странице отсутствует элемент, найденный
по указанному CSS-селектору. Первым параметром
передаётся селектор, вторым - необязательное
сообщение об ошибке. Если элемент найден,
тест завершается с ошибкой.
Синтаксис
assertSelectorNotExists(string $selector, string $message = '')
Пример
Давайте проверим, что на странице отсутствует
элемент с классом 'error':
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testIndex(): void
{
$client = static::createClient();
$client->request('GET', '/article');
$this->assertSelectorNotExists('.error');
}
}
?>
Если элемент с классом 'error' отсутствует,
тест пройдёт успешно. В противном случае будет
выброшено исключение.
Пример
Давайте передадим собственное сообщение об ошибке:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testIndex(): void
{
$client = static::createClient();
$client->request('GET', '/article');
$this->assertSelectorNotExists(
'.error',
'The error block should not be present.'
);
}
}
?>
Если элемент будет найден, тест завершится
с сообщением 'The error block should not be present.'.
Пример
Давайте проверим отсутствие сразу нескольких элементов после успешного запроса:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testIndex(): void
{
$client = static::createClient();
$client->request('GET', '/article');
$this->assertSelectorNotExists('.alert-danger');
$this->assertSelectorNotExists('#debug-bar');
$this->assertSelectorNotExists('form[name="delete"]');
}
}
?>
Каждый вызов проверяет отдельный селектор. Если хотя бы один элемент будет найден, тест завершится с ошибкой.
Смотрите также
-
метод
assertSelectorExists,
который проверяет наличие элемента на странице -
метод
assertSelectorTextContains,
который проверяет текст элемента -
метод
assertSelectorCount,
который проверяет количество элементов -
класс
WebTestCase,
который используется для функциональных тестов