2014-12-03 3 views
0

Я пытаюсь проверить совпадение Jasmine toHaveBeenCalled(). Мой ЦСИ:Ошибка в spyOn toHaveBeenCalled при тестировании модели

function myModel(){ 
} 

    myModel.prototype.getObjcts = function(){ 
    return DS.findAll('obj', {}); 
    } 

И Жасмин тест:

describe('findAll', function(){ 
     it('check calling findAll()', function(){ 
     spyOn(DS, 'findAll'); 
     myModel.getObjcts(); 
     expect(DS.findAll('obj', {})).toHaveBeenCalled(); 
     }); 
    }); 

Но я все время получаю сообщение об ошибке

ОЖИДАЕМЫЕ шпиона, но получил неопределенными

Пожалуйста , помогите мне понять, где проблема

ответ

0
  1. Вы должны создавать новый объект типа MyModel
  2. Ваши ожидания снова вызывает DS.finadAll вместо проверки шпиона.

Вот полное решение:

window.DS = { 
    findAll: function (param1, param2) {} 
}; 


function myModel() {} 

myModel.prototype.getObjcts = function() { 
    return DS.findAll('obj', {}); 
}; 


describe('findAll', function() { 
    it('check calling findAll()', function() { 
     spyOn(DS, 'findAll'); 
     var testApp = new myModel(); 
     testApp.getObjcts(); 
     expect(DS.findAll).toHaveBeenCalledWith('obj', {}); 
    }); 
}); 

Вы можете найти работоспособное решение в jsfiddle here

Смежные вопросы