我有一个函数,我已经编写了代码来处理回调,就像这个
exports.CallbackExample=function(req,res)
{
return callfunction().then(function(data)
{
saveData(data).save(function(err,responseData)
{
res.send(responseData);
})
});
}
我想为上面的代码编写单元测试用例。所以我写得像这样
var res={};
var spy=res.send=sinon.spy();
CallbackExample(req,res).then(function()
{
expect(spy.calledOnce).to.equal('true');
});
但这不起作用。我认为原因是函数有两个不同的回调,如第一个回调(Q和promises),第二个是正常的回调....我想可能是因为这个原因,这是行不通的。由于这个障碍,我无法前进。那么如何为该函数编写单元测试用例而不对该函数进行任何更改?....这可能吗? ..我希望你们中的任何一个人都能帮助我。在此先感谢我等待你的解决方案..
答案 0 :(得分:0)
exports.CallbackExample=function(req,res) {
return callfunction().then(function(data){
var deferred = Q.defer();
saveData(data).save(function(err,responseData){
if (err) {
deferred.reject(err);
} else {
res.send(responseData);
deferred.resolve(true);
}
});
return deferred.promise;
});
}