Angular ng-mock - помогает сопоставить маршруты URL

Я пытаюсь использовать ng-mock для фальсификации запроса DELETE, но получаю сообщение об ошибке: Неожиданный запрос: DELETE /api/1.0/package/1. Как правильно определить макет URL, чтобы он соответствовал заводскому запросу:

function deletePackage(file) {
  return $http.delete('/api/1.0/package/' + file.id)
    .then(deleteComplete)
    .catch(deleteFailed)            
}

$httpBackend.whenDELETE('/api/1.0/package/:id').respond(function(method, url, data, headers, params) {
   return [200, params.id];
});

2 ответа

По-видимому, вы знаете, что file аргумент, который вы собираетесь передать deletePackage метод. Имея это в виду, вы должны точно знать, какой URI ожидать.

var file = {id: 'some_id'};
$httpBackend.whenDELETE('/api/1.0/package/' + file.id).respond(file.id);

deletePackage(file); // presuming this function is in scope

Я искал не ту версию документации (1.5), и мне пришлось удалить одинарные кавычки вокруг регулярного выражения:

$httpBackend.whenDELETE(/\/api\/1.0\/package\/(.+)/)
.respond(function(method, url, data) {
   return [200];
});
Другие вопросы по тегам