【发布时间】:2021-09-29 16:14:23
【问题描述】:
我需要为一些旧代码添加单元测试覆盖率,并且难以创建一个模拟 Cursor object,这将允许链接项目、限制、跳过、toArray,如下所示。
collection.find({}, (err, res) => {
......
const results = res.project(projection)
.limit(limitCount)
.skip(skipCount)
.toArray()
我之前使用响应对象上可用的 toArray 模拟了 DB/collection/find(如下所示),但不确定如何处理上述其他游标“值”的链接。
let fakeFind = () => {
return {
toArray: () => {
return Promise.resolve(testCustomerRecord);
}
};
}
let stubFind = sinon.stub().callsFake(fakeFind);
let mockDb = {
collection: () => {
return {
find: stubFind
};
}
};
我尝试将它们添加为属性、函数,但得到如下错误:
TypeError: item.project(...).limit 不是函数
欢迎任何建议!
【问题讨论】: