前言
chai-graphql是一个用于测试GraphQL API的npm包,它基于mocha和chai测试框架,提供了一些测试GraphQLAPI的有用工具。
本教程将通过examples说明如何使用chai-graphql
安装
在项目中使用npm或yarn安装
npm i chai-graphql -D yarn add -D chai-graphql
使用
示例
假设您有一个GraphQL API的终端节点:http://localhost:4000/graphql
,它有一个query叫做getUser(id:ID!)
,这个query会从数据库中返回一个用户,需要验证返回的用户是否和预期一样
query{ getUser(id: "user_123"){ id name email age } }
以下是一个使用chai-graphql的测试代码示例,以确保您返回的用户id是“user_123”:
-- -------------------- ---- ------- ------ - ------ - ---- ------- ------ - ------- - ---- ---------- ------ ------ ---- ----------- -- ----------- ------ ------ ----------- ---- -------------- ------------------- -- -- - ----- ----- - - ----- - ----------- ----------- - -- - - -- ----------- ------- ------ -- -- - ------ --------------- -------------------- -- - -------- ----- ----------- ------------------ -------- - --- ---------- - --- --- --- ---
上述示例代码将执行GraphQL查询,并确保返回的数据与预期数据相同。使用chai-graphql,您可以将预期的响应与实际响应进行比较,这使得测试更加容易。
API
chai-graphql提供以下断言:
graphql(schema)
使用此断言对GraphQL查询进行断言:
expect({data: result.data}).to.be.graphql({ getUser: { id: 'user_123' } });
graphqlError(regex)
使用此断言对GraphQL错误进行断言:
expect(() => { graphql(schema, '{ throw new Error("Cannot query field") }'); }).to.throw(graphqlError(/Cannot query field/));
graphqlMutationError(regex, path?)
使用此断言对GraphQL错误进行断言,并指定错误路径,用于断言特定的错误:
-- -------------------- ---- ------- --------- -- - -------- ------- - -------- - -------------- ----------- ---- --- - -- - - -- -- -------------------------------------------- ----- --- -------- -------------- ------------------------
结论
我们已经学习了如何使用chai-graphql包来测试GraphQL API。chai-graphql提供了丰富的API和有用的断言,可以使您的GraphQL测试更加简单,快速和高效。
使用chai-graphql可以显着降低测试失败的风险,增强测试用例的可读性和可维护性,同时还可以使您更加自信地将API推向生产环境。
希望您能运用本教程所学的内容,有效地测试您的GraphQL API,并获得不断的提高!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055bf981e8991b448d99ae