assertSet
Метод assertSet используется в тестах компонентов Livewire для проверки значений их публичных свойств. Он принадлежит классу Testable, который возвращается при вызове метода test класса Livewire. В первый параметр передаётся имя свойства, во второй - ожидаемое значение.
Синтаксис
$this->livewire(Component::class)
->assertSet('property', $value)
Пример
Проверим, что свойство $num компонента после инициализации равно нулю:
<?php
namespace AppLivewire;
use LivewireComponent;
class Counter extends Component
{
public $num = 0;
public function render()
{
return view('livewire.counter');
}
}
?>
<?php
namespace TestsFeatureLivewire;
use AppLivewireCounter;
use LivewireLivewire;
use TestsTestCase;
class CounterTest extends TestCase
{
public function test_initial_num_is_zero()
{
$res = Livewire::test(Counter::class)
->assertSet('num', 0);
}
}
?>
Пример
Проверим, что свойство $text имеет строковое значение 'abcde':
<?php
namespace AppLivewire;
use LivewireComponent;
class TextComponent extends Component
{
public $text = 'abcde';
public function render()
{
return view('livewire.text-component');
}
}
?>
<?php
namespace TestsFeatureLivewire;
use AppLivewireTextComponent;
use LivewireLivewire;
use TestsTestCase;
class TextComponentTest extends TestCase
{
public function test_text_has_correct_value()
{
$res = Livewire::test(TextComponent::class)
->assertSet('text', 'abcde');
}
}
?>
Результат выполнения кода:
OK (1 test, 1 assertion)
Пример
Проверим, что свойство $arr содержит массив [1, 2, 3, 4, 5]:
<?php
namespace AppLivewire;
use LivewireComponent;
class ArrayComponent extends Component
{
public $arr = [1, 2, 3, 4, 5];
public function render()
{
return view('livewire.array-component');
}
}
?>
<?php
namespace TestsFeatureLivewire;
use AppLivewireArrayComponent;
use LivewireLivewire;
use TestsTestCase;
class ArrayComponentTest extends TestCase
{
public function test_array_has_correct_values()
{
$res = Livewire::test(ArrayComponent::class)
->assertSet('arr', [1, 2, 3, 4, 5]);
}
}
?>
Результат выполнения кода:
OK (1 test, 1 assertion)
Пример
Проверим, что свойство $num изменилось после вызова метода:
<?php
namespace AppLivewire;
use LivewireComponent;
class Counter extends Component
{
public $num = 0;
public function inc()
{
$this->num++;
}
public function render()
{
return view('livewire.counter');
}
}
?>
<div>
<button wire:click="inc">+</button>
<span>{{ $num }}</span>
</div>
<?php
namespace TestsFeatureLivewire;
use AppLivewireCounter;
use LivewireLivewire;
use TestsTestCase;
class CounterTest extends TestCase
{
public function test_num_increments()
{
$res = Livewire::test(Counter::class)
->call('inc')
->assertSet('num', 1);
}
}
?>
Результат выполнения кода:
OK (1 test, 1 assertion)
Смотрите также
-
метод
assertNotSet,
который проверяет, что свойство не равно указанному значению -
метод
set,
который устанавливает значение свойства в тесте -
метод
call,
который вызывает метод компонента в тесте -
метод
assertCount,
который проверяет количество элементов в свойстве-массиве