首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Stub Mongoose查找方法

Stub Mongoose查找方法
EN

Stack Overflow用户
提问于 2017-12-08 05:42:38
回答 0查看 1.2K关注 0票数 2

我正在尝试存根find或exec函数,以测试以下函数:

代码语言:javascript
复制
function getOpenTickets() {
    return Ticket.find({})
        .populate('assignees', ['fullName', 'firstName', 'email', 'notificationSettings.dailyEmail'])
        .populate('property', 'name')
        .populate('type', 'title')
        .populate({path: 'unit', model: 'Unit', select: 'title'})
        .sort('created')
        .lean()
        .exec();
}

我找到了几篇关于截断mongoose方法的帖子,但没有一个对我有效,以下是我所拥有的:

代码语言:javascript
复制
it('should test getOpenTickets', async() => {
    findStub = sinon.stub(Ticket, 'find');
    var result = await utils.__get__('getOpenTickets')();
    findStub.restore();
});

但我得到了:

代码语言:javascript
复制
Cannot read property 'populate' of undefined

所以我试着用一个假的对象替换它:

代码语言:javascript
复制
var fakeFind = {
    args: {
        populate: [],
        sort: null,
        lean: null
    },
    populate: function (a) {
        this.args.populate.push(a)
    },
    sort: function (a) {
        this.args.sort = a;
    },
    lean: function () {
        this.args.lean = true
    },
    exec: function () {
        return Promise.resolve(this.args);
    }
}

代码语言:javascript
复制
findStub = sinon.stub(Ticket, 'find').callsFake(fakeFind);

结果是:

代码语言:javascript
复制
TypeError: this.fakeFn.apply is not a function

我还尝试过存根mongoose.Model、prototype、exec和其他一些东西,但没有成功。

有什么想法吗?

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47704304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档