如何在Mocha测试中存根mongodb的addCursorFlag?

我有以下代码要进行单元测试:

.addCursorflag('noCursorTimeout',true)

我该如何存根 addCursorflag 部分使用sinon?在添加 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(); }); 之前,这是有效的单元测试:

{{1}}
aishine 回答:如何在Mocha测试中存根mongodb的addCursorFlag?

这有点棘手,但是如果您观察到collection.find之后的方法链接,则会调用addCursorFlag,然后从调用stream方法的位置返回一个对象。您需要以类似的方式构造您的收藏存根:

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')
        )}
      });
本文链接:https://www.f2er.com/3142439.html

大家都在问