©
This document uses PHP Chinese website manual Release
Fake HTTP backend implementation suitable for end-to-end testing or backend-less development of applications that use the $http service.
注意: For fake http backend implementation suitable for unit testing please see unit-testing $httpBackend mock.
This implementation can be used to respond with static or dynamic responses via the when
api
and its shortcuts (whenGET
, whenPOST
, etc) and optionally pass through requests to the
real $httpBackend for specific requests (如: to interact with certain remote apis or to fetch
templates from a webserver).
As opposed to unit-testing, in an end-to-end testing scenario or in scenario when an application
is being developed with the real backend api replaced with a mock, it is often desirable for
certain category of requests to bypass the mock and issue a real http request (如: to fetch
templates or static files from the webserver). To configure the backend with this behavior
use the passThrough
request handler of when
instead of respond
.
此外, we don't want to manually have to flush mocked out requests like we do during unit testing. For this reason the e2e $httpBackend automatically flushes mocked out requests automatically, closely simulating the behavior of the XMLHttpRequest object.
To setup the application to run with this http backend, you have to create a module that depends
on the ngMockE2E
and your application modules and defines the fake backend:
myAppDev = angular.module('myAppDev', ['myApp', 'ngMockE2E']);
myAppDev.run(Function($httpBackend) {
phones = [{name: 'phone1'}, {name: 'phone2'}];
// returns the current list of phones
$httpBackend.whenGET('/phones').respond(phones);
// adds a new phone to the phones array
$httpBackend.whenPOST('/phones').respond(Function(method, url, data) {
var phone = angular.fromJson(data);
phones.push(phone);
return [200, phone, {}];
});
$httpBackend.whenGET(/^\/templates\//).passThrough();
//...
});
Afterwards, bootstrap your app with this new module.
when(method, url, [data], [headers]);
Creates a new backend definition.
参数 | 类型 | 详述 |
---|---|---|
method | string |
HTTP method. |
url | stringRegExpfunction(string) |
HTTP url or function that receives the url and returns true if the url match the current definition. |
data
(可选)
|
stringRegExp |
HTTP request body. |
headers
(可选)
|
Objectfunction(Object) |
HTTP headers or function that receives http header object and returns true if the headers match the current definition. |
requestHandler |
Returns an object with
|
whenGET(url, [headers]);
Creates a new backend definition for GET requests. For more info see when()
.
参数 | 类型 | 详述 |
---|---|---|
url | stringRegExpfunction(string) |
HTTP url or function that receives the url and returns true if the url match the current definition. |
headers
(可选)
|
Objectfunction(Object) |
HTTP headers. |
requestHandler |
Returns an object with |
whenHEAD(url, [headers]);
Creates a new backend definition for HEAD requests. For more info see when()
.
参数 | 类型 | 详述 |
---|---|---|
url | stringRegExpfunction(string) |
HTTP url or function that receives the url and returns true if the url match the current definition. |
headers
(可选)
|
Objectfunction(Object) |
HTTP headers. |
requestHandler |
Returns an object with |
whenDELETE(url, [headers]);
Creates a new backend definition for DELETE requests. For more info see when()
.
参数 | 类型 | 详述 |
---|---|---|
url | stringRegExpfunction(string) |
HTTP url or function that receives the url and returns true if the url match the current definition. |
headers
(可选)
|
Objectfunction(Object) |
HTTP headers. |
requestHandler |
Returns an object with |
whenPOST(url, [data], [headers]);
Creates a new backend definition for POST requests. For more info see when()
.
参数 | 类型 | 详述 |
---|---|---|
url | stringRegExpfunction(string) |
HTTP url or function that receives the url and returns true if the url match the current definition. |
data
(可选)
|
stringRegExp |
HTTP request body. |
headers
(可选)
|
Objectfunction(Object) |
HTTP headers. |
requestHandler |
Returns an object with |
whenPUT(url, [data], [headers]);
Creates a new backend definition for PUT requests. For more info see when()
.
参数 | 类型 | 详述 |
---|---|---|
url | stringRegExpfunction(string) |
HTTP url or function that receives the url and returns true if the url match the current definition. |
data
(可选)
|
stringRegExp |
HTTP request body. |
headers
(可选)
|
Objectfunction(Object) |
HTTP headers. |
requestHandler |
Returns an object with |
whenPATCH(url, [data], [headers]);
Creates a new backend definition for PATCH requests. For more info see when()
.
参数 | 类型 | 详述 |
---|---|---|
url | stringRegExpfunction(string) |
HTTP url or function that receives the url and returns true if the url match the current definition. |
data
(可选)
|
stringRegExp |
HTTP request body. |
headers
(可选)
|
Objectfunction(Object) |
HTTP headers. |
requestHandler |
Returns an object with |
whenJSONP(url);
Creates a new backend definition for JSONP requests. For more info see when()
.
参数 | 类型 | 详述 |
---|---|---|
url | stringRegExpfunction(string) |
HTTP url or function that receives the url and returns true if the url match the current definition. |
requestHandler |
Returns an object with |