gpt4 book ai didi

node.js - 填充调用后模拟 Mongoose 对象

转载 作者:太空宇宙 更新时间:2023-11-04 00:18:34 25 4
gpt4 key购买 nike

我正在尝试模拟填充调用,并且我想模拟返回 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 来模拟这样的填充字段吗?

最佳答案

一种方法是在创建 mongoose 对象后在数组中插入一些内容。数组的直接分配也不起作用,因此您需要循环遍历多个项目。

var book = new BookModel({
_id: mongoose.Types.ObjectId(),
name: 'Mock Book',
authorIds: []
});

book.authorIds[0] = {
name: 'Foo'
};

sandbox.mock(BookModel)
.expects('populate')
.yields(null, [book]);

关于node.js - 填充调用后模拟 Mongoose 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45556473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com