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];
});