1

在这篇文章中,作者制作了一个这样的示例助手,使用的包是Lighthouse

public function graphql(string $query)
{
    return $this->post('/graphql', [
      'query' => $query
    ]);
}

所以可以像这样使用它:

$response = $this->graphql("{articles(first: 10) { edges { node { title } } } }");

但我可以在突变上实现它吗?如果例如我有一个突变:

type Mutation {
   sampleMutation(
      id: ID!
   )
}

我不确定如何在突变上做到这一点。

4

1 回答 1

0

可以测试突变。

在最新版本的 Lighthouse 中,您现在有一个可以添加到测试类的特征,称为MakesGraphQLRequests.
以下示例来自他们的文档,介绍了如何为突变创建测试。

public function testCreatePost(): void
{
    /** @var \Illuminate\Foundation\Testing\TestResponse $response */
    $response = $this->postGraphQL([
        'query' => '
            mutation CreatePost($title: String!) {
                createPost(title: $title) {
                    id
                }
            }
        ',
        'variables' => [
            'title' => 'Automatic testing proven to reduce stress levels in developers'
        ],
    ]);
}

您获得的响应对象将包含来自您的突变的 json 结果。所以在这里你可以像使用 Laravel 一样进行任何 json 断言。
在他们的文档中,有一些关于 json 验证的示例。

免责声明:我是所引用文章的作者。

于 2019-06-26T19:21:56.000 回答