我想使用 Jest 为 GraphQL 解析器编写测试,但真的不知道从哪里开始。解析器是使用 NodeJS 上的 Mongoose 写入 MongoDB 数据库的简单 CRUD 函数。
类型:
type Article {
_id: ID!
title: String
authors: [User]
}
查询
extend type Query {
articles: [Article]
article(_id: ID!): Article
}
解析器(只读)
Query: {
articles: () => new Promise((resolve, reject) => {
Article.find({}, (err, articles) => {
if (err) reject(err);
else resolve(articles);
});
}),
article: (root, {
_id,
}) => new Promise((resolve, reject) => {
Article.findById(_id, (err, article) => {
if (err) reject(err);
else resolve(article);
});
}),
},
如何在不与数据库交互的情况下进行测试?
最佳答案
按照这些步骤
- 使用环境变量根据模式(生产、测试、开发)更改数据库
- 导入模式
像这样编写测试和使用 graphql
const query=`mutation name($id:String!) //dummy example query { user(id:$id) { //fields goes here } }` const result = await graphql(schema, query, {}, {}, data); if (result.data) { return result.data.addEventTag } else { throw new Error(...result.errors.map(err => ` \n${err.message}`)); }
所以不需要直接导入解析器,graphQl会使用它,一定要按照模式连接数据库。
关于node.js - 用 Jest 测试 GraphQL 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50501324/