Я все еще пытаюсь изучить Жасмин и проверить Угловое обслуживание. В настоящее время я пытаюсь проверить .success, и ошибка вызывает http.get.
обслуживания вызовов
this.get = function (param1, param2) {
return $http.get('api/something/get/param1/param2')
.success(function (data) {
return data;
})
.error(function() {
return "Please select param1 AND param2";
});
};
жасмин Тесты
it('service makes unsuccessful API call', function() {
var response = "This is the response";
httpBackend.when('GET', "api/something/Get/0/0").respond(404);
var data;
service.get(0, 0).then(function(result) {
data = result;
});
httpBackend.flush();
expect(data).toEqual("Please select param1 AND param2");
});
it('service makes successful API call', function() {
var response = "This is the response";
httpBackend.when('GET', "api/something/Get/0/0").respond(response);
var data;
service.get(0, 0).then(function(result) {
data = result.data;
});
httpBackend.flush();
expect(data).toEqual(response);
});
В первом тесте (ошибка) данные = result.data линии в то() не вызывается. В ожидании (данные) .toEqual() данные не определены. Когда я просматриваю все, я вижу, где вызывается служба, и сообщение об ошибке заносится в result.data.
Во втором тесте (Успех) я вижу то же самое, но данные устанавливаются, когда вызывается функция then.
Почему моя функция then не вызвана .error()?
потому что у вас нет аргумента обработчика отклонения в 'then (resolveHandler, rejectHandler)' – charlietfl
Спасибо за помощь. Добавление rejectHandler решило проблему. – James