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

Метод assertJsonCount

Метод assertJsonCount применяется в тестах Laravel для проверки количества элементов в JSON-ответе. Первый параметр - ожидаемое количество элементов, второй - ключ проверяемого массива в JSON-ответе. Если ключ не указан, метод проверяет корневой массив. При несоответствии тест выбрасывает исключение.

Синтаксис

<?php $this->assertJsonCount($expectedCount, $key = null); ?>

Параметры метода:

  • $expectedCount - ожидаемое количество элементов в массиве
  • $key (необязательный) - ключ в JSON-ответе, который содержит массив для проверки

Пример

Проверим, что JSON-ответ содержит ровно три элемента в массиве 'data':

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\User; class UserTest extends TestCase { public function test_users_list_contains_three_users() { User::factory()->count(3)->create(); $res = $this->getJson('/api/users'); $res->assertJsonCount(3, 'data'); } } ?>

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

"OK (1 test, 1 assertion)"

Пример

Проверим, что корневой массив содержит ровно пять элементов:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\Post; class PostTest extends TestCase { public function test_root_array_contains_five_posts() { Post::factory()->count(5)->create(); $res = $this->getJson('/api/posts'); $res->assertJsonCount(5); } } ?>

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

"OK (1 test, 1 assertion)"

Пример

Проверим количество элементов во вложенном массиве с использованием точечной нотации:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\Comment; class CommentTest extends TestCase { public function test_post_has_two_comments() { $post = Post::factory()->create(); Comment::factory()->count(2)->create([ 'post_id' => $post->id ]); $res = $this->getJson('/api/posts/' . $post->id); $res->assertJsonCount(2, 'comments.data'); } } ?>

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

"OK (1 test, 1 assertion)"

Пример

Пример с пустым массивом и проверкой отсутствия элементов:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\Category; class CategoryTest extends TestCase { public function test_empty_categories_list() { $res = $this->getJson('/api/categories'); $res->assertJsonCount(0, 'data'); } } ?>

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

"OK (1 test, 1 assertion)"

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

  • метод assertJson,
    который проверяет наличие фрагмента в JSON-ответе
  • метод assertJsonPath,
    который проверяет значение по указанному пути в JSON
  • метод assertJsonStructure,
    который проверяет структуру JSON-ответа
  • метод assertExactJson,
    который проверяет точное соответствие JSON-ответа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить