0

我正在尝试使用 ng-mock 来伪造 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];
});
4

2 回答 2

0

我正在查看错误版本的文档(1.5),我不得不删除正则表达式周围的单引号:

$httpBackend.whenDELETE(/\/api\/1.0\/package\/(.+)/)
.respond(function(method, url, data) {
   return [200];
});
于 2016-02-02T18:30:43.393 回答
0

因此,大概您知道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
于 2016-02-02T00:22:33.417 回答