随着 GraphQL 的流行,前端开发人员需要掌握如何测试 GraphQL 应用程序。在这篇文章中,我们将介绍如何使用 Mocha 和 Chai 断言库来测试 GraphQL 应用程序的最佳实践。
环境准备
首先,我们需要安装 Mocha 和 Chai。在项目根目录下执行以下命令:
npm install --save-dev mocha chai
接下来,我们需要安装一些其他的依赖项。在本文中,我们将使用以下依赖项:
npm install --save-dev graphql apollo-server-express supertest
graphql
:GraphQL 的 JavaScript 实现。apollo-server-express
:一个用于 Express 的 GraphQL 服务器。supertest
:一个用于测试 HTTP 服务器的库。
编写测试用例
接下来,我们将编写一个测试用例来测试 GraphQL 查询。我们将使用 describe
和 it
函数来编写我们的测试用例。这些函数由 Mocha 提供。
// javascriptcn.com 代码示例 const { expect } = require('chai'); const { ApolloServer } = require('apollo-server-express'); const express = require('express'); const supertest = require('supertest'); const { typeDefs, resolvers } = require('./schema'); describe('GraphQL API', () => { let server; let request; before(async () => { const app = express(); server = new ApolloServer({ typeDefs, resolvers }); await server.start(); server.applyMiddleware({ app }); request = supertest(app); }); after(async () => { await server.stop(); }); it('should return a list of books', async () => { const query = ` query { books { id title author } } `; const response = await request.post('/graphql').send({ query }); expect(response.status).to.equal(200); expect(response.body.data.books).to.be.an('array'); }); });
在这个测试用例中,我们首先导入了 expect
函数,它是 Chai 提供的用于断言的函数。接下来,我们导入了我们的 GraphQL schema。我们使用 describe
函数来描述我们的测试用例。在 before
函数中,我们创建了一个 Express 应用程序,并启动了一个 ApolloServer,然后将 ApolloServer 中间件应用到应用程序中。我们还创建了一个 request
对象,它将用于发送 GraphQL 查询。在 after
函数中,我们停止了 ApolloServer。
在 it
函数中,我们编写了一个测试用例,它将查询所有书籍。我们使用 request.post
函数发送了一个 GraphQL 查询,并断言响应的状态码为 200,响应的数据是一个数组。
运行测试用例
现在我们已经编写了我们的测试用例,接下来我们需要运行它们。在项目根目录下执行以下命令:
npm test
如果一切正常,测试用例将会通过。
总结
在本文中,我们介绍了如何使用 Mocha 和 Chai 断言库来测试 GraphQL 应用程序的最佳实践。我们编写了一个测试用例来测试 GraphQL 查询,并使用了 describe
和 it
函数来编写测试用例。我们还介绍了如何安装依赖项,并运行测试用例。希望本文能够帮助你更好地测试你的 GraphQL 应用程序。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65603c2cd2f5e1655da68c0a