我正在尝试单元测试:
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回调与常规回调存在问题是一个问题。
答案 0 :(得分:0)
通过编写以下内容来解决问题,而不用担心mongoose查询测试中的回调。
myModel
.expects('find').withArgs({"id": 'def'})
.yields(null, 'abc')
.chain('sort').withArgs({timestamp: -1})
.chain('limit').withArgs(100);