我有一个函数返回一个有很多方法的对象,我需要检查这个返回对象中的一个方法。我使用AngularJS和Karma + Jasmine作为测试套件。如何调用函数返回的对象内的方法?
function modalOptions() {
.........
return this.$q((resolve) => {
// test accessable here
this.solveModel = {
save: () => {
// test can't call save()
this.saveToDB = this.toSendToDB;
},
cancel: () => { ...
},
delete: () => { ...
}
};
});
}
我的测试有点像这样......
it('should save modal with the data', function() {
scope.$apply();
expect(vm.modalOptions).toBeDefined();
vm.toSendToDB = true; // hard-coded
vm.savedToDB = undefined // default value from other controller
spyOn(vm, 'modalOptions').and.callThrough();
console.log(vm.modalOptions()); // gives weird response: c{$$state: Object{status: 0}} instead of the solveModal object
expect(vm.toSendToDB).toBeTruthy();
expect(vm.savedToDB).toBeTruthy();
});
答案 0 :(得分:0)
很抱歉,我还无法发表评论,但必须解决承诺并将solveModel传递给它,以便返回solveModel。你在哪里解决这个承诺?