Метод assertViewIs
Метод assertViewIs применяется к ответу HTTP
в тестах Laravel и проверяет, что возвращаемое
представление соответствует ожидаемому имени.
Первым параметром передаётся строка с именем представления.
Метод доступен только при использовании тестового
клиента Laravel и возвращает экземпляр ответа
для цепочки проверок.
Синтаксис
<?php
$this->get($uri)->assertViewIs($viewName);
?>
Пример
Давайте проверим, что главная страница использует
представление 'welcome':
<?php
namespace Tests\Feature;
use Tests\TestCase;
class PageTest extends TestCase
{
public function test_main_page_uses_welcome_view()
{
$res = $this->get('/')->assertViewIs('welcome');
}
}
?>
Результат выполнения кода при успешной проверке:
null
Пример
Проверим, что страница профиля использует представление
'profile.show':
<?php
namespace Tests\Feature;
use Tests\TestCase;
class ProfileTest extends TestCase
{
public function test_profile_page_uses_correct_view()
{
$res = $this->get('/profile')
->assertStatus(200)
->assertViewIs('profile.show');
}
}
?>
Результат выполнения кода при успешной проверке:
null
Пример
Проверим, что страница списка статей возвращает
представление 'articles.index', и передаёт в него данные:
<?php
namespace Tests\Feature;
use Tests\TestCase;
use App\Models\Article;
class ArticleTest extends TestCase
{
public function test_articles_page_returns_correct_view()
{
$articles = Article::factory()->count(3)->create();
$res = $this->get('/articles')
->assertViewIs('articles.index')
->assertViewHas('articles', $articles);
}
}
?>
Результат выполнения кода при успешной проверке:
null
Пример
Если представление не соответствует ожидаемому, тест выбрасывает исключение:
<?php
namespace Tests\Feature;
use Tests\TestCase;
class PageTest extends TestCase
{
public function test_main_page_uses_correct_view()
{
$this->get('/')->assertViewIs('home');
}
}
?>
Результат выполнения кода при неудачной проверке:
"Failed asserting that the response view is [home]."
Смотрите также
-
метод
assertViewHas,
который проверяет наличие данных в представлении -
метод
assertStatus,
который проверяет HTTP-статус ответа -
метод
get,
который выполняет GET-запрос в тестах -
класс
TestCase,
базовый класс для всех тестов в Laravel