Проверка свойства в Livewire
Давайте рассмотрим ситуацию, когда метод переименования меняет заголовок поста, а на экране это видно лишь после обновления блока. Нужна короткая проверка, что внутри компонента лежит уже новое значение.
Метод assertSet в цепочке
теста сравнивает поле
компонента с ожидаемой
строкой после вызова
метода. Так мы отделяем
логику от разметки и
смотрим прямо на состояние.
Давайте создадим компонент
PostEdit с переименованием:
php artisan make:livewire PostEdit --class
php artisan make:test PostEditTest
<?php
namespace App\Livewire;
use Livewire\Component;
class PostEdit extends Component
{
public $title = 'Draft';
public function rename()
{
$this->title = 'News';
}
public function render()
{
return view('livewire.post-edit');
}
}
?>
Давайте вызовем переименование и сверим заголовок:
<?php
namespace Tests\Feature;
use Tests\TestCase;
use App\Livewire\PostEdit;
use Livewire\Livewire;
class PostEditTest extends TestCase
{
public function test_rename_updates_title(): void
{
Livewire::test(PostEdit::class)
->call('rename')
->assertSet('title', 'News');
}
}
?>
Создайте компонент
EmployeeEdit и тест
EmployeeEditTest.
После переименования имя
работника равно Ann.