Метод assertJsonPath
Метод assertJsonPath применяется к объекту ответа
в тестах Laravel и проверяет, что значение по указанному
пути в JSON-ответе соответствует заданному значению.
Первый параметр метода - путь к значению в формате
с использованием точек, второй - ожидаемое значение.
Если значение не совпадает, тест будет провален
с сообщением об ошибке.
Синтаксис
<?php
$response->assertJsonPath($path, $value);
?>
Пример
Давайте проверим, что в JSON-ответе по пути
'data.user.id' содержится значение 1:
<?php
namespace Tests\Feature;
use Tests\TestCase;
class UserTest extends TestCase
{
public function test_user_id_is_correct()
{
$res = $this->getJson('/api/user/1');
$res->assertJsonPath('data.user.id', 1);
}
}
?>
Результат выполнения кода:
"Test passed successfully"
Пример
Давайте проверим, что в ответе по пути
'data.articles.0.title' содержится строка
'article':
<?php
namespace Tests\Feature;
use Tests\TestCase;
class ArticleTest extends TestCase
{
public function test_article_title_is_correct()
{
$res = $this->getJson('/api/articles');
$res->assertJsonPath('data.articles.0.title', 'article');
}
}
?>
Результат выполнения кода:
"Test passed successfully"
Пример
Давайте проверим значение булевого поля в JSON-ответе:
<?php
namespace Tests\Feature;
use Tests\TestCase;
class UserTest extends TestCase
{
public function test_user_status_is_active()
{
$res = $this->getJson('/api/user/1');
$res->assertJsonPath('data.user.active', true);
}
}
?>
Результат выполнения кода:
"Test passed successfully"
Смотрите также
-
метод
assertJson,
который проверяет наличие фрагмента в JSON-ответе -
метод
assertJsonCount,
который проверяет количество элементов в массиве JSON -
метод
assertJsonStructure,
который проверяет структуру JSON-ответа -
метод
getJson,
который выполняет GET-запрос к API и возвращает ответ