【发布时间】:2018-11-03 04:59:20
【问题描述】:
我正在寻找使用 Jest 为 GraphQL 解析器编写测试,但我真的不知道从哪里开始。解析器是简单的 CRUD 函数,用于在 NodeJS 上使用 mongoose 写入 MongoDB 数据库。
类型:
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);
});
}),
},
如何在不与数据库交互的情况下进行测试?
【问题讨论】:
-
据我所知,这将创建一个模拟服务器,我可以在其中测试 mongodb 命令,但不能测试 graphQL 解析器。如果我将解析器文件导入到测试中,它将连接到“真实”数据库。看来我需要拦截该连接并用模拟数据库替换
标签: node.js mongodb mongoose graphql jestjs