Nep*_*oxx 11 mongoose node.js sinon
我得到了如何对Mongoose模型进行存根(感谢用Sinon对一个Mongoose模型进行Stubbing),但是我不太明白如何将调用存根如下:
myModel.findOne({"id": someId})
.where("someBooleanProperty").equals(true)
...
.exec(someCallback);
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
var findOneStub = sinon.stub(mongoose.Model, "findOne");
sinon.stub(findOneStub, "exec").yields(someFakeParameter);
Run Code Online (Sandbox Code Playgroud)
没有用,有什么建议吗?
Nep*_*oxx 18
我通过执行以下操作解决了这个问题:
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);
Run Code Online (Sandbox Code Playgroud)
看看sinon-mongoose.您可以只用几行来预测链式方法:
sinon.mock(YourModel).expects('findOne')
.chain('where').withArgs('someBooleanProperty')
.chain('exec')
.yields(someError, someResult);
Run Code Online (Sandbox Code Playgroud)
您可以在回购中找到工作示例.
另外,建议:使用mock
方法代替stub
,即检查方法确实存在.
归档时间: |
|
查看次数: |
6712 次 |
最近记录: |