Вызов метода в Livewire
Давайте разберём такой случай. На странице поста кнопка запускает сохранение, а результат попадает в отдельное свойство. В браузере всё видно, но автоматической проверки пока нет.
Метод call в тесте
вызывает публичный метод
компонента так же, как
это сделал бы wire:click.
После вызова можно
прочитать изменившееся
состояние через проверку
свойства.
Давайте создадим компонент
PostSave с действием
сохранения:
php artisan make:livewire PostSave --class
php artisan make:test PostSaveTest
<?php
namespace App\Livewire;
use Livewire\Component;
class PostSave extends Component
{
public $saved = '';
public function save()
{
$this->saved = 'Saved';
}
public function render()
{
return view('livewire.post-save');
}
}
?>
Давайте в тесте вызовем сохранение и проверим подпись результата:
<?php
namespace Tests\Feature;
use Tests\TestCase;
use App\Livewire\PostSave;
use Livewire\Livewire;
class PostSaveTest extends TestCase
{
public function test_save_sets_label(): void
{
Livewire::test(PostSave::class)
->call('save')
->assertSet('saved', 'Saved');
}
}
?>
Создайте компонент
EmployeeSave и тест
EmployeeSaveTest.
Вызов сохранения ставит
подпись работника.