Mongoose模型链单元测试(常规回调)

时间:2017-05-26 14:11:42

标签: javascript unit-testing mongoose sinon

我正在尝试单元测试:

myModel.find({"id": someId}, callback)
    .sort({timestamp: -1})
    .limit(100)

我使用了sinon-mongoose并想出了以下

myModel
    .expects('find').withArgs({"id": 'def'})
    .chain('exec')
    .yields(null, 'abc')
    .chain('sort').withArgs({timestamp: -1})
    .chain('limit').withArgs(100);

但是,我遇到的问题是没有调用done函数并且测试超时。任何人都有经验使用sinon-mongoose对exec回调进行常规回调?

如果我将模型代码更改为:

myModel.find({"id": someId}
    .exec(callback)
    .sort({timestamp: -1})
    .limit(100)

单元测试有效。因此,我认为将exec回调与常规回调存在问题是一个问题。

1 个答案:

答案 0 :(得分:0)

通过编写以下内容来解决问题,而不用担心mongoose查询测试中的回调。

myModel
    .expects('find').withArgs({"id": 'def'})
    .yields(null, 'abc')
    .chain('sort').withArgs({timestamp: -1})
    .chain('limit').withArgs(100);