GraphQL 是一种数据查询语言和运行时环境,它可以用来查询和操作您的 API 中的数据。在 GraphQL 中,Resolver 是定义数据如何被查询和修改的重要组件,它们将 GraphQL 请求和您的数据源连接起来。
在本文中,我们将使用 Mocha 来测试 GraphQL Resolvers。Mocha 是一个功能丰富的 JavaScript 测试框架,使我们能够编写高效的测试套件,并快速识别和排除错误。
准备工作
我们需要确保安装了以下软件包:
- Node.js 和 npm:Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,npm 是 Node.js 的包管理器。
- GraphQL 和 Apollo Server:GraphQL 是一个查询语言和运行时,Apollo Server 是一个与 Express 或 Hapi 集成使用的 GraphQL 服务器。
这些包可以通过以下命令进行安装:
npm install graphql apollo-server
我们还将使用以下软件包:
- Mocha:JavaScript 测试框架。
- Chai:JavaScript 断言库。
这些包可以通过以下命令进行安装:
npm install --global mocha npm install --save-dev chai
编写 Resolvers
首先,我们需要编写一些 Resolvers。我们将使用以下 Schema:
-- -------------------- ---- ------- ---- ---- - --- --- ----- ------- ------ ------- ------ -------- - ---- ---- - --- --- ------ ------- -------- ------- ------- ----- - ---- ----- - -------- ----- ---- -------- ----- ---- - ---- -------- - ---------------- -------- ------ --------- ---- ----------------- -------- -------- -------- --------- ----- ---- -
我们需要编写以下 Resolvers:
- user:通过 ID 获取用户。
- post:通过 ID 获取帖子。
- createUser:创建用户。
- createPost:创建帖子,并为其分配作者。
我们将在以下文件中编写 Resolvers:
src/resolvers.js
在 Resolvers 文件中编写以下代码:
-- -------------------- ---- ------- ----- ----- - - - --- ---- ----- ------- ------ ------------------- ------ --- -- - --- ---- ----- ------- ------ ------------------- ------ --- -- -- ----- ----- - - - --- ---- ------ --- ----- ------ -------- ------ ------- --------- ---- -- - --- ---- ------ --- ------ ------ -------- -------- ------- --------- ---- -- -- ----- --------- - - ------ - ----- --- - -- -- -- --------------- -- ------- --- ---- ----- --- - -- -- -- --------------- -- ------- --- ---- -- --------- - ----------- --- - ----- ----- -- -- - ----- ---- - - --- ------------------------------------ --- ----- ------ ------ --- -- ----------------- ------ ----- -- ----------- --- - ------ -------- -------- -- -- - ----- ---- - - --- ------------------------------------ --- ------ -------- --------- -- ----- ---- - --------------- -- ------- --- ---------- ---------------------- ----------------- ------ ----- -- -- ----- - ------ ---- -- ----------------- -- ------------- --- --------- -- ----- - ------- ---- -- --------------- -- ------- --- --------------- -- -- -------------- - ----------
编写测试用例
现在我们可以编写测试用例来测试 Resolvers 了。我们将在以下文件中编写测试用例:
test/resolvers.js
在测试文件中,我们将测试以下 Resolvers:
- user:通过 ID 获取用户。
- post:通过 ID 获取帖子。
- createUser:创建用户。
- createPost:创建帖子,并为其分配作者。
我们将使用 chai 断言库来断言测试结果是否正确。在测试文件中编写以下代码:
-- -------------------- ---- ------- ----- ------ - ----------------------- ----- --------- - ---------------------------- --------------------- -------- -- - ---------------- -------- -- - ---------- ------ ---- -- ---- -------- -- - ----- ------ - -------------------------- - --- --- --- ------------------------ - --- ---- ----- ------- ------ ------------------- ------ --- --- --- ---------- ------ ---- -- ---- --- ------- -------- -- - ----- ------ - -------------------------- - --- --- --- ---------------------- --- --- ---------------- -------- -- - ---------- ------ ---- -- ---- -------- -- - ----- ------ - -------------------------- - --- --- --- ------------------------ - --- ---- ------ --- ----- ------ -------- ------ ------- --------- ---- --- --- ---------- ------ ---- -- ---- --- ------- -------- -- - ----- ------ - -------------------------- - --- --- --- ---------------------- --- --- ---------------------- -------- -- - ---------- ------ ------ -------- -- - ----- ------ - ----------------------------------- - ----- ------ ------ ------------------ --- ------------------------ - --- ---------- ----- ------ ------ ------------------ ------ --- --- --- --- ---------------------- -------- -- - ---------- ------ ------ -------- -- - ----- ------ - ----------------------------------- - ------ --- ----- ------ -------- ------ ----- ------- --------- ---- --- ------------------------ - --- ---------- ------ --- ----- ------ -------- ------ ----- ------- --------- ---- --- ----- ---- - -------------------------- - --- --- --- ---------------------------- - - --- ---------- ------ --- ----- ------ -------- ------ ----- ------- --------- ---- -- --- --- --- ---
运行测试
现在我们可以运行测试了。在命令行中,进入项目的根目录,运行以下命令:
mocha --timeout 5000 test/resolvers.js
这将运行我们的测试套件并输出测试结果。如果所有测试通过,我们就可以放心地在生产环境中使用 Resolvers 了。
总结
本文介绍了使用 Mocha 测试 GraphQL Resolvers 的方法。我们先编写了 Resolvers,然后编写了测试用例,并使用 chai 断言库来断言测试结果是否正确。最后,我们运行测试套件来确保我们的 Resolvers 在生产环境中可以正常工作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6642d1dbd3423812e40bc1dc