我想为save特定模型中的Mongoose 方法创建一个存根,以便我创建的模型的任何实例都将调用该存根,而不是普通的Mongoose save方法。我的理解是,执行此操作的唯一方法是像这样对整个模型进行存根:
save
var stub = sinon.stub(myModel.prototype);
不幸的是,这行代码使我的测试抛出以下错误:
TypeError: Cannot read property 'states' of undefined
有人知道这里出了什么问题吗?
有两种方法可以完成此操作。首先是
var mongoose = require('mongoose'); var myStub = sinon.stub(mongoose.Model, METHODNAME);
如果您使用log mongoose.Model控制台,则会看到该模型可用的方法(特别是其中不包含lte选项)。
另一种(特定于模型的)方式是
var myStub = sinon.stub(YOURMODEL.prototype.base.Model, 'METHODNAME');
同样,存根可以使用相同的方法。
编辑:诸如保存的一些方法如下:
var myStub = sinon.stub(mongoose.Model.prototype, METHODNAME); var myStub = sinon.stub(YOURMODEL.prototype, METHODNAME);