我试图存根一个猫鼬模型返回一个JSON值使用兴农存根猫鼬模型
是我的代码是
var valueToReturn = {
name:'xxxxx'
};
var stub = sinon.stub(MyModel.prototype,'findOne');
stub.returns(valueToReturn);
我得到这个错误:类型错误:试图包裹未定义的财产findOne作为功能
我试图存根一个猫鼬模型返回一个JSON值使用兴农存根猫鼬模型
是我的代码是
var valueToReturn = {
name:'xxxxx'
};
var stub = sinon.stub(MyModel.prototype,'findOne');
stub.returns(valueToReturn);
我得到这个错误:类型错误:试图包裹未定义的财产findOne作为功能
看看sinon-mongoose。可以预计,链接方法只需几行:
// If you are using callbacks, use yields so your callback will be called
sinon.mock(YourModel)
.expects('findById').withArgs('abc123')
.chain('exec')
.yields(someError, someResult);
// If you are using Promises, use 'resolves' (using sinon-as-promised npm)
sinon.mock(YourModel)
.expects('findById').withArgs('abc123')
.chain('exec')
.resolves(someResult);
你可以找到关于回购工作的例子。
另外,推荐:使用mock
方法而不是stub
,这将检查方法确实存在于原始对象上。
你是否是sinon-mongoose的创造者?你可以在7-8个不同的线程中插入猫鼬测试。 – VtoCorleone
@VtoCorleone是的,我分享它,因为我认为它可能对其他面临同样的问题时,我有嘲笑猫鼬模型:) – Gon
看看[这里](http://stackoverflow.com/a/28885743/1521933) –
在这里,他们使用mongoose.Model的findOne方法。我正在尝试使用MyModel.findOne,因为我的导出方法已将findOne用于2种不同的模型。所以我想尝试和存根2个不同的模型 –