【问题标题】:Mongoose model chain unit testing (Regular Callback)Mongoose 模型链单元测试(Regular Callback)
【发布时间】:2017-10-27 11:26:44
【问题描述】:

我正在尝试进行单元测试:

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 回调与常规回调存根是一个问题。

【问题讨论】:

    标签: javascript unit-testing mongoose sinon


    【解决方案1】:

    通过编写以下内容解决了问题,并且不用担心猫鼬查询测试中的回调。

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

    【讨论】:

      猜你喜欢
      • 2016-11-19
      • 2014-05-17
      • 2023-04-01
      • 2018-08-07
      • 2019-07-16
      • 2020-04-14
      • 2019-06-21
      • 2015-06-24
      • 2017-12-19
      相关资源
      最近更新 更多