Проверка текста в Livewire
Пусть на карточке поста должен быть виден заголовок не только в памяти компонента, но и в готовой разметке. Сверить одно свойство мало: человек читает именно текст на странице.
Метод assertSee в тесте
ищет строку в HTML,
который вернул компонент
после отрисовки.
Так мы ловим случаи,
когда поле заполнено,
а в шаблоне его забыли
вывести.
Давайте создадим компонент
PostCard с заголовком
в шаблоне:
php artisan make:livewire PostCard --class
php artisan make:test PostCardTest
<?php
namespace App\Livewire;
use Livewire\Component;
class PostCard extends Component
{
public $title = 'News';
public function render()
{
return view('livewire.post-card');
}
}
?>
Давайте выведем заголовок в Blade:
<div>{{ $title }}</div>
Давайте попросим тест найти эту строку в ответе:
<?php
namespace Tests\Feature;
use Tests\TestCase;
use App\Livewire\PostCard;
use Livewire\Livewire;
class PostCardTest extends TestCase
{
public function test_title_is_visible(): void
{
Livewire::test(PostCard::class)
->assertSee('News');
}
}
?>
Создайте компонент
EmployeeCard и тест
EmployeeCardTest.
На странице работника
видно имя Ann.