Метод assertDontSee
Метод assertDontSee применяется в тестах HTTP-запросов
для проверки, что определённая строка или текст не присутствуют
в теле ответа. Первым параметром передаётся текст или строка,
которую необходимо проверить на отсутствие. Вторым параметром
(необязательным) можно передать логическое значение false,
чтобы отключить экранирование HTML-сущностей при проверке.
Метод возвращает экземпляр теста, что позволяет строить цепочки
вызовов.
Синтаксис
<?php
$this->assertDontSee($text, $escape = true);
?>
Пример
Давайте проверим, что на главной странице не отображается
слово 'admin':
<?php
namespace Tests\Feature;
use Tests\TestCase;
class HomePageTest extends TestCase
{
public function test_admin_text_is_not_visible()
{
$response = $this->get('/');
$response->assertDontSee('admin');
}
}
?>
Пример
Проверим, что после удаления статьи её название не отображается на странице списка:
<?php
namespace Tests\Feature;
use Tests\TestCase;
use App\Models\Article;
class ArticleTest extends TestCase
{
public function test_deleted_article_is_not_shown()
{
$article = Article::factory()->create([
'title' => 'article 1',
]);
$article->delete();
$response = $this->get('/articles');
$response->assertDontSee('article 1');
}
}
?>
Пример
Проверим, что HTML-тег отсутствует в ответе с помощью отключения экранирования:
<?php
namespace Tests\Feature;
use Tests\TestCase;
class SecurityTest extends TestCase
{
public function test_script_tag_is_not_present()
{
$response = $this->get('/page');
$response->assertDontSee('<script>', false);
}
}
?>
Смотрите также
-
метод
assertSee,
который проверяет наличие текста в ответе -
метод
assertSeeText,
который проверяет наличие текста без учёта HTML-тегов -
метод
assertStatus,
который проверяет статус HTTP-ответа -
метод
get,
который выполняет GET-запрос к приложению