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

Метод toggle

Метод toggle класса Testable предназначен для переключения логических значений свойств компонента Livewire в тестовой среде. Он изменяет текущее значение свойства на противоположное: если было true, становится false, и наоборот. Метод принимает один обязательный параметр - имя свойства, которое нужно переключить.

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

Синтаксис

$component->toggle('propertyName')

Пример

Давайте протестируем переключение флага $isOpen в компоненте. Создадим компонент с кнопкой, которая меняет состояние флага:

<?php namespace AppLivewire; use LivewireComponent; class Panel extends Component { public $isOpen = false; public function togglePanel() { $this->isOpen = !$this->isOpen; } public function render() { return view('livewire.panel'); } } ?>
<div> <button wire:click="togglePanel"> Toggle </button> @if ($isOpen) <p>Panel is open</p> @endif </div>

Теперь напишем тест с использованием метода toggle:

<?php namespace TestsFeatureLivewire; use TestsTestCase; use LivewireLivewire; use AppLivewirePanel; class PanelTest extends TestCase { public function test_toggles_panel() { $component = Livewire::test(Panel::class); // Проверяем начальное состояние $component->assertSet('isOpen', false); // Переключаем состояние $component->toggle('isOpen'); $component->assertSet('isOpen', true); // Переключаем обратно $component->toggle('isOpen'); $component->assertSet('isOpen', false); } } ?>

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

OK (1 test, 3 assertions)

Пример

Метод toggle также работает с числами, интерпретируя их как логические значения (0 и 1). Рассмотрим компонент с числовым флагом:

<?php namespace AppLivewire; use LivewireComponent; class Switcher extends Component { public $status = 0; public function switchStatus() { $this->status = $this->status ? 0 : 1; } public function render() { return view('livewire.switcher'); } } ?>
<div> <button wire:click="switchStatus"> Switch </button> <span>Status: {{ $status }}</span> </div>

Тест с переключением числового статуса:

<?php namespace TestsFeatureLivewire; use TestsTestCase; use LivewireLivewire; use AppLivewireSwitcher; class SwitcherTest extends TestCase { public function test_toggles_status() { $component = Livewire::test(Switcher::class); $component->assertSet('status', 0); $component->toggle('status'); $component->assertSet('status', 1); $component->toggle('status'); $component->assertSet('status', 0); } } ?>

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

OK (1 test, 3 assertions)

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

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