本文介绍了使用Sinon取消链接的Mongoose呼叫的存根的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我了解了如何对猫鼬模型进行存根(感谢使用Sinon对猫鼬模型进行存根),但我不太了解如何对以下电话进行存根:

I get how to stub Mongoose models (thanks to Stubbing a Mongoose model with Sinon), but I don't quite understand how to stub calls like:

myModel.findOne({"id": someId})
    .where("someBooleanProperty").equals(true)
    ...
    .exec(someCallback);

我尝试了以下操作:

var findOneStub = sinon.stub(mongoose.Model, "findOne");
sinon.stub(findOneStub, "exec").yields(someFakeParameter);

无济于事,有什么建议吗?

to no avail, any suggestions?

推荐答案

我已通过以下操作解决了该问题:

I've solved it by doing the following:

var mockFindOne = {
    where: function () {
        return this;
    },
    equals: function () {
        return this;
    },
    exec: function (callback) {
        callback(null, "some fake expected return value");
    }
};

sinon.stub(mongoose.Model, "findOne").returns(mockFindOne);

这篇关于使用Sinon取消链接的Mongoose呼叫的存根的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-26 17:09