【发布时间】:2018-01-15 07:47:00
【问题描述】:
我正在尝试模拟 populate 调用,我想模拟返回 mongoose 对象,而不是普通的 JS 对象。
sandbox.mock(BookModel)
.expects('populate')
.yields(null, [
new BookModel({
_id: mongoose.Types.ObjectId(),
name: 'Mock Book',
authorIds: [{
name: 'Foo',
}]
})
]);
使用架构:
var BookSchema = new Schema({
name: { type: String, required: true, unique: true },
authorIds: [{type: Schema.Types.ObjectId, ref: 'Author'}],
});
var AuthorSchema = new Schema({
name: { type: String, required: true, unique: true },
});
但是 mongoose 阻止我的测试使用模拟填充作者创建模拟对象,因为 mongoose 可能正在检查 authorIds 数组是否是对象 ID 数组。
有没有人用 sinon 来模拟这样的填充字段?
【问题讨论】:
标签: node.js mongodb mongoose mocking sinon