[英]How can I stub mongodb's addCursorFlag in mocha test?
我有这个代码来单元测试:
collection.find({
result: { $exists: false }
}, {
timeout: false,
maxTimeMS: 1800000,
})
.addCursorFlag('noCursorTimeout', true)
.stream()
.
.
.
如何使用 sinon 存根.addCursorFlag('noCursorTimeout', true)
部分? 这是在添加addCursorFlag
之前有效的单元测试:
collectionStub.find = sinon.stub().returns({
stream: () => new mocks.stream.ReadableMock(false, null, 'mongo error')
});
jobRunner.on('error', (updatedJob) => {
expect(updatedJob).to.deep.equal({
...job,
status: 'error',
error: 'mongo error',
});
done();
});
jobRunner.run();
});
这有点棘手,但是如果您在collection.find
之后观察方法链接,您会调用addCursorFlag
,然后从调用stream
方法的位置返回 object。 您需要以类似的方式构建您的集合存根:
collectionStub.find = sinon.stub().returns({
// addCursorFlag is a function that returns an object
addCursorFlag: () => ({
// stream is a method in the returned object
stream: () => new mocks.stream.ReadableMock(false, null, 'mongo error')
)}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.