Я пытаюсь протестировать API, который я создал с Lumen (PHP)
, но я застрял на unit test
моих GraphQL
откликах`.
Вот что я пробовал:
class MovieQueryTest extends Tests\GraphQLTestCase
{
use DatabaseMigrations;
public function testCanSearch()
{
Movie::create([
'name' => 'Fast & Furious 8',
'alias' => 'Fast and Furious 8',
'year' => 2016
]);
$response = $this->post('/graphql/v1', [
'query' => '{movies(search: "Fast & Furious"){data{name}}}'
]);
$response->seeJson([
'data' => [
'movies' => [
'data' => [
'name' => 'Fast & Furious 8'
]
]
]
]);
}
}
Вот что я получил:
PHPUnit 7.5.6 от Себастьяна Бергманна и авторов.
F ..... 6/6 (100%)
Время: 690 мс, Память: 24,00 МБ
Произошел 1 сбой:
1) MovieQueryTest :: testCanSearch Невозможно найти фрагмент JSON ["data": {"movies ": {" data ": {" name ":" Fast & Furious "}}}] внутри [{" data ": {" movies ": {" data ": []}}}].Не удалось подтвердить, что значение false равно true.
Проблема заключается в том, что моя структура данных не соответствует структуре JSON's
.Пока мои данные находятся внутри Array
, данные JSON находятся внутри Object
, и я не могу понять, как сделать так, чтобы они соответствовали:
["data":{"movies":{"data":{"name":"Fast & Furious 8"}}}]
[{"data":{"movies":{"data":[{"name":"Fast & Furious 8"}]}}}]
Как сделать так, чтобы моя структура данных соответствовала структуре данных JSON, или есть лучший способ модульного тестирования ответов GraphQL на Lumen?