0

我已经使用以下 lib - https://github.com/leangen/graphql-spqr使用 Spring Boot 实现了 GraphQL 端点。我目前有使用 WebTestClient 的 REST 端点的 junit,并尝试以类似的方式为 spqr 编写 junit,但这不起作用。

GraphQL 支持所有端点的 POST 方法,所以有人知道如何使用 Web 测试客户端传递查询和变异请求,或者有没有其他方法可以为 spqr lib 编写 junit?

4

1 回答 1

0

什么是行不通的?GraphQL 请求只是带有(通常)JSON 主体的普通 HTTP 请求,没什么特别的。

只需 POST 包含以下字段的 JSON:

  • query- 查询/突变/订阅
  • operationName- 仅当您同时发布多个查询时才需要
  • variables- 带有变量的对象,例如{'name' : 'value'}

您也可以将这些作为 GET 参数传递。查看GraphQL over HTTP 规范以获取更多详细信息和示例。

然后,您可以使用JsonPath对结果进行断言。

assertEquals("John Doe", JsonPath.read(result, "$.data.book[0].author"));
于 2021-06-23T09:05:35.390 回答