РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
254 of 274 menu

Метод call класса Testable

Метод call класса Testable предназначен для вызова публичных методов компонента Livewire в тестовой среде. Он принимает имя метода в качестве первого аргумента и параметры метода в качестве последующих аргументов. После вызова метода тестовый экземпляр компонента обновляется, что позволяет проверять изменения состояния.

Синтаксис

$component->call('methodName', $param1, $param2);

Пример простого вызова метода

Давайте создадим компонент с методом inc, который увеличивает счетчик, и вызовем его в тесте:

<?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> <span>{{ $num }}</span> </div>
<?php namespace TestsUnit; use TestsTestCase; use LivewireLivewire; use AppLivewireCounter; class CounterTest extends TestCase { public function test_increment() { $component = Livewire::test(Counter::class); $component->call('inc'); $component->assertSet('num', 1); } } ?>

Результат выполнения кода:

OK (1 test)

Пример вызова метода с параметрами

Давайте передадим в метод параметр, определяющий шаг увеличения счетчика:

<?php namespace AppLivewire; use LivewireComponent; class Counter extends Component { public $num = 0; public function inc($step) { $this->num += $step; } public function render() { return view('livewire.counter'); } } ?>
<div> <span>{{ $num }}</span> </div>
<?php namespace TestsUnit; use TestsTestCase; use LivewireLivewire; use AppLivewireCounter; class CounterTest extends TestCase { public function test_increment_with_step() { $component = Livewire::test(Counter::class); $component->call('inc', 5); $component->assertSet('num', 5); } } ?>

Результат выполнения кода:

OK (1 test)

Пример вызова метода с несколькими параметрами

Давайте вызовем метод, который принимает несколько аргументов:

<?php namespace AppLivewire; use LivewireComponent; class Calculator extends Component { public $result = 0; public function add($a, $b) { $this->result = $a + $b; } public function render() { return view('livewire.calculator'); } } ?>
<div> <span>{{ $result }}</span> </div>
<?php namespace TestsUnit; use TestsTestCase; use LivewireLivewire; use AppLivewireCalculator; class CalculatorTest extends TestCase { public function test_add_method() { $component = Livewire::test(Calculator::class); $component->call('add', 10, 20); $component->assertSet('result', 30); } } ?>

Результат выполнения кода:

OK (1 test)

Смотрите также

  • метод set,
    который устанавливает значение свойства компонента в тестах
  • метод assertSet,
    который проверяет значение свойства компонента
  • метод toggle,
    который переключает булево свойство компонента
  • метод test,
    который создает экземпляр тестируемого компонента
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить