0

我最近开始使用 jasmine 为我们的一个应用程序编写 junit 测试用例。我被困在如何调用间谍函数的回调函数上。

setProfile :function(userProfile,callback){
        var user;
        var subjectInfo;

        iService.searchForAccess(subjectInfo , queryCalback);

        function queryCalback(err, userProfile) {
           if(err){
               callback(true,errorMessage)
           }else{
             callback(false,null)
           }
        }
}

现在,在我的规范中,我想模拟对 iService.searchForAccess 真实世界实现的调用,并想为 searchForAccess 调用 nocallThrough 。但是必须调用我的 queryCalback 函数才能完成完整的用例覆盖。

在我的规范中,我尝试通过显式调用 queryCalback 函数

spyOn(iService,'searchForAccess');
iService.searchForAccess.mostRecentCall.args[1](error, userProfile);

iService.searchForAccess.mostRecentCall返回 {},空对象。

请帮忙!!!!!!!!!!

问候普尼斯

4

1 回答 1

0

我已经使用 sinonjs 作为上述问题陈述的解决方案。以下是其完成方式的语法。

var sinon = require('../node_modules/sinon/lib/sinon.js');
sinon.stub(iService, 'searchForAccess').callsArgWith(1, mockSubjectInfo, session.userProfile);

希望它对其他人有帮助。

问候普尼斯

于 2014-10-29T18:58:07.313 回答