Метод set класса Testable
Метод set класса Testable позволяет устанавливать значения
публичных свойств компонента Livewire во время тестирования.
Он принимает два параметра: имя свойства и его новое значение.
Метод возвращает тот же экземпляр Testable, что позволяет
использовать цепочки вызовов.
Синтаксис
$component->set('propertyName', $value);
Пример
Давайте протестируем компонент счетчика, установив его
начальное значение через метод set:
<?php
namespace AppLivewire;
use LivewireComponent;
class Counter extends Component
{
public $num = 0;
public function inc()
{
$this->num++;
}
public function render()
{
return view('livewire.counter');
}
}
?>
<?php
namespace TestsFeatureLivewire;
use LivewireLivewire;
use AppLivewireCounter;
use TestsTestCase;
class CounterTest extends TestCase
{
public function test_set_property_value()
{
$component = Livewire::test(Counter::class);
$component->set('num', 10);
$component->assertSet('num', 10);
}
}
?>
Результат выполнения кода:
OK (1 test, 1 assertion)
Пример
Установим свойство $text в компоненте и проверим
его отображение в шаблоне:
<?php
namespace AppLivewire;
use LivewireComponent;
class Message extends Component
{
public $text = 'default';
public function render()
{
return view('livewire.message');
}
}
?>
<div>
<p>{{ $text }}</p>
</div>
<?php
namespace TestsFeatureLivewire;
use LivewireLivewire;
use AppLivewireMessage;
use TestsTestCase;
class MessageTest extends TestCase
{
public function test_set_text_property()
{
$component = Livewire::test(Message::class);
$component->set('text', 'hello world');
$component->assertSee('hello world');
}
}
?>
Результат выполнения кода:
OK (1 test, 2 assertions)
Пример
Используем цепочку вызовов для установки нескольких свойств перед выполнением действия:
<?php
namespace AppLivewire;
use LivewireComponent;
class UserProfile extends Component
{
public $name = '';
public $email = '';
public function updateProfile()
{
// Сохранение профиля
}
public function render()
{
return view('livewire.user-profile');
}
}
?>
<?php
namespace TestsFeatureLivewire;
use LivewireLivewire;
use AppLivewireUserProfile;
use TestsTestCase;
class UserProfileTest extends TestCase
{
public function test_update_profile_with_set()
{
$component = Livewire::test(UserProfile::class);
$component->set('name', 'John Doe')
->set('email', 'john@example.com')
->call('updateProfile');
$component->assertSet('name', 'John Doe')
->assertSet('email', 'john@example.com');
}
}
?>
Результат выполнения кода:
OK (1 test, 3 assertions)