我已经使用以下 lib - https://github.com/leangen/graphql-spqr使用 Spring Boot 实现了 GraphQL 端点。我目前有使用 WebTestClient 的 REST 端点的 junit,并尝试以类似的方式为 spqr 编写 junit,但这不起作用。
GraphQL 支持所有端点的 POST 方法,所以有人知道如何使用 Web 测试客户端传递查询和变异请求,或者有没有其他方法可以为 spqr lib 编写 junit?
我已经使用以下 lib - https://github.com/leangen/graphql-spqr使用 Spring Boot 实现了 GraphQL 端点。我目前有使用 WebTestClient 的 REST 端点的 junit,并尝试以类似的方式为 spqr 编写 junit,但这不起作用。
GraphQL 支持所有端点的 POST 方法,所以有人知道如何使用 Web 测试客户端传递查询和变异请求,或者有没有其他方法可以为 spqr lib 编写 junit?
什么是行不通的?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"));