Mocha 测试框架中如何测试 GraphQL API
前言
GraphQL 是一种用于 API 的查询语言,它可以更加高效灵活地描述数据需求,从而减少网络传输数据量,提高应用性能。但是,在使用 GraphQL API 的过程中,我们也需要考虑如何测试 GraphQL API 的有效性和可靠性,这就需要使用到一些测试框架了,其中 Mocha 测试框架是一个非常流行的选择。本文将介绍如何在 Mocha 测试框架中使用 supertest 库、chai 库和 graphql 库对 GraphQL API 进行测试。
一、安装及设置测试环境
- 安装 Mocha
在开始测试之前,需要安装 Mocha 测试框架,可以通过以下命令进行安装:
npm install -g mocha
- 安装 supertest
supertest 是一个 node.js 的 http 测试框架,它可以模拟 HTTP 请求,从而方便进行测试。我们可以通过以下命令安装:
npm install supertest --save-dev
- 安装 chai
chai 是一个 BDD/TDD 风格的断言库,它提供了多种断言方式,可以使测试更加方便。我们可以通过以下命令进行安装:
npm install chai --save-dev
- 安装 graphql
graphql 是一个用于构建 API 的库,它可以将查询和变换的逻辑从 API 的实现中分离出来。我们可以通过以下命令进行安装:
npm install graphql --save-dev
二、测试 GraphQL API
- 编写测试用例
在进行测试之前,需要先编写测试用例。下面是一个简单的测试用例,它测试了一个 GraphQL 查询:
-- -------------------- ---- ------- ----- ------- - --------------------- ----- - ------ - - ---------------- ----- - ------- - - ------------------- ----- ------ - -------------------- -------------- ------- ----- -- -- - ---------- ------ ----- ------- ----- -- -- - ----- ----- - -- ----- --- ----- ------ - ----- --------------- ------- -------------------------------------------- --- ---
上述测试用例中,我们首先引入了 supertest、chai 和 graphql 库,然后定义了一个测试用例,使用了 async 和 await 关键字进行异步测试。在测试用例中,我们定义了一个 GraphQL 查询字符串 query,并将其作为 graphql() 方法的参数,然后通过 expect() 方法断言结果,确保返回的数据为 ‘world’。
- 编写 GraphQL schema
在上述测试用例中,我们还需要定义 GraphQL schema。schema 可以将所有可查询的元素和类型定义清晰地列出来。我们通过定义 schema 来告诉测试框架 API 的结构和含义。下面是一个简单的 schema 示例:
-- -------------------- ---- ------- ----- - -------------- ------------------ ------------- - - ------------------- ----- --------- - --- ------------------- ----- -------- ------- - ------ - ----- -------------- -------- -- -- -------- -- -- --- -------------- - --- --------------- ------ ---------- ---
在该示例中,我们首先引入了 graphql 相关的库,并定义了一个 queryType 对象,其中包含了一个名为 hello 的字段,它的类型为 GraphQLString,resolve 方法返回 ‘world’。最后,通过 new GraphQLSchema() 方法将 queryType 转化为 schema,并导出它。
三、运行测试用例
- 在命令行中运行测试
在编写好测试用例和 schema 之后,我们就可以在命令行中运行测试了。只需要在命令行中进入测试文件所在目录,输入以下命令:
mocha
Mocha 将自动查找测试文件并执行测试用例。如果测试通过,将显示一条绿色的 Successful 提示;否则将显示一条红色的 Failed 提示,指出是哪个断言失败了。
- 在 Webstorm 中运行测试
在 Webstorm 中运行测试有两种方式:一是在终端中输入 mocha,二是在 Webstorm IDE 的 Run => Edit Configurations 中添加 mocha 配置后,点击运行按钮。
添加 mocha 配置:
1)在 Webstorm 的界面上点击 Run => Edit Configurations;
2)在弹出的窗口中点击左上角加号,选择 Mocha;
3)在 Configuration 页中,选择测试文件和参数,如下图所示:
4)点击 OK,再次点击运行按钮,即可运行测试。
总结
本文介绍了在 Mocha 测试框架中测试 GraphQL API 的步骤。首先,我们通过安装 supertest、chai 和 graphql 库设置了测试环境;然后,编写了测试用例和 GraphQL schema;最后,运行测试用例,并在控制台或 Webstorm 中查看测试结果。本文的内容详细、深入、有指导意义,可以帮助读者快速掌握在 Mocha 测试框架中测试 GraphQL API 的方法。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64effa0cf6b2d6eab39e64c2