GraphQL 是一种用于构建 API 的开源查询语言。它可以让客户端精确地请求所需的数据,并允许服务器返回与请求相匹配的数据。测试 GraphQL 应用程序是非常重要的,以确保其正常工作并为客户提供最好的用户体验。在本文中,我们将使用 Chai 库来测试 GraphQL 应用程序。
前置条件
本文假定你已了解 GraphQL 和 Chai 库的基本知识,可以在本地安装它们。
步骤 1:创建 GraphQL 应用程序
我们将创建一个简单的 GraphQL 应用程序,以演示如何使用 Chai 库测试它。首先,我们将创建一个 GraphQL 模式和一个简单的查询:
-- -------------------- ---- ------- ----- - -------- ----------- - - ------------------- ----- ------ - ------------- ---- ----- - ------ ------ - --- ----- ---- - - ------ -- -- ------ ------- -- ----- ----- - -- ----- --- --------------- ------ --------------------- -- - ---------------------- ---
该代码输出:
{ data: { hello: 'Hello world!' } }
现在我们有了一个可用的 GraphQL 应用程序,现在将使用 Chai 库来测试我们的查询。
步骤 2:安装 Chai 库
首先,我们需要安装 Chai 库,并在我们的代码中引入它:
npm install chai
const chai = require('chai'); const { expect } = chai;
步骤 3:撰写测试用例
现在我们可以编写测试用例来测试我们的 GraphQL 应用程序。我们将使用 expect
断言来编写测试用例。
测试查询
我们将编写一个测试用例,检查我们的查询是否正常工作:
it('returns hello world', () => { return graphql(schema, query, root).then(({ data }) => { expect(data.hello).to.equal('Hello world!'); }); });
该测试用例将运行查询,然后使用 expect
断言检查 hello
字段是否返回了 Hello world!
。
测试无效查询
我们还将编写一个测试用例来测试无效查询的情况:
it('returns null for invalid query', () => { const invalidQuery = '{ goodbye }'; return graphql(schema, invalidQuery, root).then(({ data }) => { expect(data.goodbye).to.be.null; }); });
该测试用例将使用一个不存在的 goodbye
字段来运行查询,然后使用 expect
断言检查 goodbye
字段是否返回了 null
。
步骤 4:运行测试用例
现在我们已经编写了测试用例,可以使用 Mocha 测试运行器来运行它们。我们需要在项目中安装 Mocha,并创建一个测试文件,告诉 Mocha 应该运行哪些测试用例。
安装 Mocha
npm install --save-dev mocha
创建测试文件
在项目的根目录中,创建一个名为 test.js
的文件,并添加以下内容:
-- -------------------- ---- ------- ----- ---- - ---------------- ----- - ------ - - ----- ----- - -------- ----------- - - ------------------- ----- ------ - ------------- ---- ----- - ------ ------ - --- ----- ---- - - ------ -- -- ------ ------- -- ----- ----- - -- ----- --- ----------------- ------- -- -- - ----------- ----- ------- -- -- - ------ --------------- ------ ------------- ---- -- -- - ---------------------------------- --------- --- --- ----------- ---- --- ------- ------- -- -- - ----- ------------ - -- ------- --- ------ --------------- ------------- ------------- ---- -- -- - -------------------------------- --- --- ---
该文件包括我们之前编写的测试用例。
运行测试
现在运行测试:
./node_modules/mocha/bin/mocha test.js
如果所有测试用例都通过,则应该看到类似于以下内容的输出:
GraphQL tests ✓ returns hello world ✓ returns null for invalid query 2 passing (27ms)
如果有一个或多个测试用例失败,则会显示失败的测试用例的详细信息。
结论
在本文中,我们介绍了如何使用 Chai 库测试 GraphQL 应用程序。我们创建了一个简单的查询,并编写了测试用例来测试查询的有效性和无效性。通过运行 Mocha 测试运行器,我们可以运行测试用例,并检查我们的应用程序是否正常工作。了解如何测试 GraphQL 应用程序是非常重要的,以确保为客户提供最佳体验并有效地跟踪问题。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6774fbef6d66e0f9aaf2b4bd