GraphQL 已经成为现代 Web 开发中最受欢迎的 API 标准之一。 它通过使用类型强制的查询语言和自定义类型返回数据,将客户端和服务器端解耦。 本文将介绍如何使用 Mocha、Chai 和 GraphQL 来创建自动化测试 GraphQL API 的测试套件。
准备工作
首先,需要开发一个 GraphQL API。 如果你已经有了一个 GraphQL API,那么你可以直接进入下一步,否则你需要一个 GraphQL 服务器和一个搭配的客户端。 这里我们使用 Express 和 GraphQL Yoga 来创建服务器。
-- -------------------- ---- ------- ----- ------- - ------------------- ----- - ------------- - - ------------------------ ----- -------- - - ---- ----- - ----------- ------- - -- ----- --------- - - ------ - ----------- -- -- ------- -------- -- - ----- ------ - --- --------------- --------- ---------- --- --------------- -- ------------------- -- ------- -- ------------------
在终端中运行该代码将启动 GraphQL 服务器。 要在客户端中运行查询,需要使用 Apollo Client。 该客户端可在任何支持 JavaScript 的环境中使用。 在本文中,我们将使用 Node.js。
首先,需要安装 apollo-boost 和 graphql 库。
npm install apollo-boost graphql --save
-- -------------------- ---- ------- ----- - ------------ - - ------------------------- ----- - -------- - - ---------------------------- ----- - ------------- - - --------------------------------- ----- ----- - ---------------------- ----- ------ - --- -------------- ----- --- ---------- ---- ------------------------ ------ --- ------ --- ---------------- --- ------ -------- ------ - ----- - ---------- - -- -- ------------ -- -------------------------------------
以上代码将在控制台显示 "Hello, world!"。
创建 Mocha 测试运行器
现在,我们来看一下如何使用 Mocha 来测试我们的 API 查询。 如果还没有安装 Mocha,可以通过下面的命令进行安装:
npm install mocha --save-dev
然后,在创建测试文件之前,我们需要创建一个 npm script 来运行 Mocha。编辑 package.json 文件,添加以下代码:
"scripts": { "test": "mocha" },
然后,创建一个名为 query.test.js 的 JavaScript 文件。 在该文件中进行导入所需的库和定义测试用例。我们会调用 describe 函数和 it 方法来编写我们的测试用例:
-- -------------------- ---- ------- ----- - ------------ - - ------------------------- ----- - -------- - - ---------------------------- ----- - ------------- - - --------------------------------- ----- ----- - ---------------------- ----- - ------ - - ---------------- ----- ------ - --- -------------- ----- --- ---------- ---- ------------------------ ------ --- ------ --- ---------------- --- --------------- ------------ -- -- - ----------- ------- ---- ------------ ----- -- -- - ----- - ---- - - ----- -------------- ------ - ----- - ---------- - -- --- ---------------------------------------- --------- --- ---
最后,运行 npm run test 命令,即可执行 Mocha 测试用例。
导出测试结果
Mocha 可以将所有测试结果输出为 JSON、XML 或其他类似于 CI 工具要求的格式。我们可以使用 Mochawesome,该工具会提供一个报告,以便更方便地查看和测试结果的分析。
首先,需要安装 mochawesome 和 mochawesome-merge 包。
npm install mochawesome mochawesome-merge --save-dev
接着,修改 package.json,添加以下配置:
"scripts": { "test": "mocha --reporter mochawesome", "merge-report": "mochawesome-merge mochawesome-report/*.json > mochawesome-report/report.json", "generate-report": "marge mochawesome-report/report.json -o mochawesome-report/report.html", },
以上配置文件中的 npm 脚本会自动从 Mocha 输出中生成可读性更好的 HTML 报告。 运行 npm run test 命令将会生成一个存储在 mochawesome-report 文件夹中的 JSON 格式测试报告。 然后,运行 npm run generate-report 命令将生成可读性更好且美观的 HTML 报告。
总结
我们现在已经学会了如何使用 Mocha 和 Chai 测试 GraphQL API!这项技能将会使你的代码更加健壮,并且能够更深入地了解你的应用程序如何运作。请确保为每个函数/方法编写测试,这不仅能使团队更加协调,还能使代码更加可维护。
完整代码可从 GitHub 仓库 下载。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64799ad1968c7c53b0597d1a