Page 269 - AngularJS权威教程
P. 269
19.13 模拟$httpBackend 249
url:一个HTTP URL或者接受URL的函数,并且该URL匹配当前定义时返回true。 19
data (可选):HTTP请求的主体,或者是个函数,接受一个data字符串并且在data符合
预期时返回true,或者是一个用JSON格式发送HTTP主体的JavaScript对象。
headers (可选):HTTP头。 20
// ...
$httpBackend.expectPATCH("/v1/api/current_user") 21
expectPOST()为POST请求创建了一个新的请求预期。它带有三个参数。
22
url:一个HTTP URL或者接受URL的函数,并且该URL匹配当前定义时返回true。
data (可选):HTTP请求的主体,或者是个函数,接受一个data字符串并且在data符合
预期时返回true,或者是一个用JSON格式发送HTTP主体的JavaScript对象。 23
headers(可选): HTTP头。
24
// ...
$httpBackend.expectPOST("/v1/api/sign_up", {'userId': 1234});
expectPUT()为PUT请求创建了一个新的请求预期。它带有三个参数。 25
url:一个HTTP URL或者接受URL的函数,并且该URL匹配当前定义时返回true。
data (可选):HTTP请求的主体,或者是个函数,接受一个data字符串并且在data符合 26
预期时返回true,或者是一个用JSON格式发送HTTP主体的JavaScript对象。
headers :(可选) HTTP头。 27
// ...
$httpBackend.expectPUT("/v1/api/user/1234", {'name': 'Ari'});
28
expectDELETE()为DELETE请求创建了一个新的请求预期。它带有两个参数。
url:一个HTTP URL或者接受URL的函数,并且该URL匹配当前定义时返回true。 29
headers:(可选)HTTP头。
// ... 30
$httpBackend.expectDELETE("/v1/api/user/123")
3. requestHandler
31
我们的expect()方法都会返回一个requestHandler对象,带有一个函数: respond。 respond
方法让我们能给模拟的HTTP请求建立一个响应。
32
requestHandler的response函数有两种形式。
第一种形式允许我们设置响应代码、响应数据、响应头,或者全部三项。 33
// ...
$httpBackend.expectGET("/v1/api/current_user") 34
// 响应一个200状态代码
// 还有主体“success”
.respond(200, 'Success');
// 或者只返回数据 35
.respond("Fail");
// 或者只有请求头
.respond({'X-RESPONSE', 'Failure'}); 36