У меня есть ресурс, который обертывает RESTful API. Я использую этот ресурс из моего контроллера для создания новых объектов и сохранить их, подобно этому сниппето из угловых Документов
var newCard = new CreditCard({number:'0123'});
newCard.name = "Mike Smith";
newCard.$save();
При написании модульных тестов в Жасмине, я получаю следующее сообщение об ошибке, когда $ сохранить вызовом является Выполнено: «Невозможно прочитать свойство« $ обещать »неопределенного».
Каков наилучший способ тестирования метода в контроллере, который содержит вышеуказанный код?
Может быть, вы должны показать код, который вызывает ошибку. Я предполагаю, что вы следите за методом ресурсов, который должен устанавливать свойство $ prom ... Когда вы используете spyOn(), исходная функция заменяется на ту, которая выполняет шпионаж ... исходная функция не выполняется , поэтому никакое обещание никогда не возвращается/не устанавливается. Но вы можете сделать 'spyOn (ресурс,« $ save »). And.callThrough()', чтобы получить функциональность шпиона и исходную функцию, которая будет выполнена. –
Ты прав Сунил. SpyOn был spyOn (_cardService, «save»); Когда я добавляю callThrough, он выполняет тест без ошибки обещания. Если вы переместите свой комментарий к ответу, я помечаю его как таковой. Благодаря! – witters
Рад, что это было разрешено, опубликовано, что в качестве ответа :) –