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

Метод assertCount

Метод assertCount класса Testable проверяет, что количество элементов в указанном свойстве компонента, которое является массивом или объектом, реализующим интерфейс Countable, соответствует ожидаемому числу. Метод принимает два параметра: ожидаемое количество и имя свойства. Если количество элементов не совпадает, тест будет провален.

Синтаксис

<?php Livewire::test(Component::class) ->assertCount(int $expected, string $property); ?>

Пример

Давайте проверим, что массив $items содержит ровно 3 элемента:

<?php namespace AppLivewire; use LivewireComponent; class ItemList extends Component { public $items = ['a', 'b', 'c']; public function render() { return view('livewire.item-list'); } } ?>
<div> @foreach ($items as $item) <span>{{ $item }}</span> @endforeach </div>
<?php namespace TestsFeatureLivewire; use AppLivewireItemList; use LivewireLivewire; use TestsTestCase; class ItemListTest extends TestCase { public function test_items_count() { Livewire::test(ItemList::class) ->assertCount(3, 'items'); } } ?>

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

OK (1 test, 1 assertion)

Пример

Давайте проверим, что коллекция $users после добавления элемента содержит 4 записи:

<?php namespace AppLivewire; use LivewireComponent; use IlluminateSupportCollection; class UserList extends Component { public $users; public function mount() { $this->users = collect(['user1', 'user2', 'user3']); } public function addUser() { $this->users->push('user4'); } public function render() { return view('livewire.user-list'); } } ?>
<div> <button wire:click="addUser">Add user</button> @foreach ($users as $user) <span>{{ $user }}</span> @endforeach </div>
<?php namespace TestsFeatureLivewire; use AppLivewireUserList; use LivewireLivewire; use TestsTestCase; class UserListTest extends TestCase { public function test_users_count_after_add() { Livewire::test(UserList::class) ->call('addUser') ->assertCount(4, 'users'); } } ?>

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

OK (1 test, 1 assertion)

Пример

Давайте проверим, что массив $numbers содержит 5 элементов после фильтрации:

<?php namespace AppLivewire; use LivewireComponent; class NumberList extends Component { public $numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; public function filterEven() { $this->numbers = array_filter( $this->numbers, fn($n) => $n % 2 === 0 ); } public function render() { return view('livewire.number-list'); } } ?>
<div> <button wire:click="filterEven">Filter even</button> @foreach ($numbers as $num) <span>{{ $num }}</span> @endforeach </div>
<?php namespace TestsFeatureLivewire; use AppLivewireNumberList; use LivewireLivewire; use TestsTestCase; class NumberListTest extends TestCase { public function test_filtered_numbers_count() { Livewire::test(NumberList::class) ->call('filterEven') ->assertCount(5, 'numbers'); } } ?>

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

OK (1 test, 1 assertion)

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

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