GraphQL 是一种新型的 API 查询语言,它允许开发者请求和返回所需的数据,而不需要像传统的 RESTful API 那样收到不必要的数据。然而,由于 GraphQL 的灵活性和动态性,测试 GraphQL API 变得有些棘手。本文将介绍如何测试 GraphQL API,希望能帮助前端开发者更好地测试他们的GraphQL API。
准备工作
在开始测试 GraphQL API 前,我们需要安装并配置一些工具:
- Jest - Jest 是由 Facebook 开源的 JavaScript 测试框架,它提供了丰富的 API 和测试运行环境。
- graphql-request - 是一个轻量级的 GraphQL 客户端,它可以帮助我们发送 GraphQL 查询并处理响应。
- supertest - 一个 HTTP 测试库,它可以帮助我们在 Node.js 应用程序和 Express 应用程序上进行端到端测试。
安装 Jest 和 graphql-request:
--- ------- ---- --------------- ----------
安装 supertest:
--- ------- --------- ----------
编写测试用例
了解了 GraphQL 和准备好了所需的工具后,我们可以开始编写测试用例。
测试查询
首先,我们需要为我们的查询编写测试用例。以下是一个查询测试用例的示例,它可以测试一个简单的 GraphQL 查询:
------ - ------- - ---- ----------------- ----------------- -- -- - --------------- ------- -- -- - ----- ----- - - ----- - -------- - - ----------- ---------- ----- -- -- - ----- ---- - ----- ---------------------------------------- ------ ---------------------- --------- ------ ------ -- -- -- --
在上面的代码中,我们使用了 graphql-request
发送了一个查询,并检查查询是否返回了正确的结果。expect
函数用于断言测试结果是否和预期一致。
测试变异
接下来,我们需要为我们的变异编写测试用例。以下是一个变异测试用例的示例,它可以测试一个简单的 GraphQL 变异:
------ - ------- - ---- ----------------- -------------------- -- -- - ------------- ------ -- -- - ----- -------- - - -------- - -------------- - ----- ------ -------- -- - -- ---- --------- - - - -------- ------ ----- -- -- - ----- ---- - ----- ---------------------------------------- --------- ------------------------------------- ---------------------------------------- --------- ------------------------------------------ -- -- --
在上面的代码中,我们使用了 graphql-request
发送了一个变异,并检查变异是否按照预期添加了一个待办事项。expect
函数用于断言测试结果是否和预期一致。
端到端测试
最后,我们需要进行完整的端到端测试。以下是一个端到端测试的示例,它使用 supertest
和 graphql-request
从我们的 Node.js 应用程序中查询和变异 GraphQL API:
------ ------- ---- ----------- ------ --- ---- ------- ----------------- ----- -- -- - ----------------- -- -- - --------------- ------- -- -- - ----- ----- - - ----- - -------- - - ----------- ---------- ----- -- -- - ----- --- - ----- ------------ ----------------- ------- ----- -- -------------- ------------------- ----------------------------------- --------------------------------------------- ------- -- -- -- -------------------- -- -- - ------------- ------ -- -- - ----- -------- - - -------- - -------------- - ----- ------ -------- -- - -- ---- --------- - - - -------- ------ ----- -- -- - ----- --- - ----- ------------ ----------------- ------- ------ -------- -- -------------- ------------------- ----------------------------------- ---------------------------------------------- ------------------------------------------------- --------- --------------------------------------------------- -- -- -- --
在上面的代码中,我们首先使用 supertest
向我们的应用程序发送请求,然后使用 graphql-request
发送 GraphQL 查询或变异。
结论
测试 GraphQL API 可以为我们提供可靠性和稳定性,这对于构建现代 Web 应用是至关重要的。本文介绍了如何使用 Jest、 graphql-request
和 supertest
编写测试用例,以便更好地测试我们的 GraphQL API。
真正的测试是为了确保应用程序符合预期行为,与 GraphQL 一样,测试的本质是在解决问题,而不仅仅是检查代码是否运行良好。希望本文可以帮助您更好地测试您的 GraphQL API。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/66f9293ac5c563ced5c3db8e