【发布时间】:2019-07-31 15:46:28
【问题描述】:
我正在尝试测试使用 Lumen (PHP) 构建的 API,但我被困在 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'
]
]
]
]);
}
}
这是我得到的:
Sebastian Bergmann 及其贡献者编写的 PHPUnit 7.5.6。
F..... 6 / 6 (100%)
时间:690 毫秒,内存:24.00 MB
有 1 次失败:
1) MovieQueryTest::testCanSearch 找不到 JSON 片段 ["data":{"movies":{"data":{"name":"Fast & Furious"}}}] 内 [{“数据”:{“电影”:{“数据”:[]}}}]。未能断言 false 是 真的。
问题是我的数据结构与JSON's 结构不匹配。虽然我的数据在 Array 内,但 JSON 的数据在 Object 内,我不知道如何匹配:
["data":{"movies":{"data":{"name":"Fast & Furious 8"}}}][{"data":{"movies":{"data":[{"name":"Fast & Furious 8"}]}}}]
如何使我的数据结构与 JSON 的数据结构相匹配,或者有更好的方法在 Lumen 上对 GraphQL 响应进行单元测试?
【问题讨论】:
-
e200,如果下面的答案有帮助或者您需要进一步的帮助,请告诉我们。
标签: json api phpunit graphql lumen