p.location-badge.
exported from angular2/http
defined in angular2/src/http/backends/mock_backend.ts (line 99)
:markdown
A mock backend for testing the Http
service.
This class can be injected in tests, and should be used to override bindings
to other backends, such as XHRBackend
.
#Example
```
import {MockBackend, DefaultOptions, Http} from 'angular2/http';
it('should get some data', inject([AsyncTestCompleter], (async) => {
var connection;
var injector = Injector.resolveAndCreate([
MockBackend,
bind(Http).toFactory((backend, defaultOptions) => {
return new Http(backend, defaultOptions)
}, [MockBackend, DefaultOptions])]);
var http = injector.get(Http);
var backend = injector.get(MockBackend);
//Assign any newly-created connection to local variable
backend.connections.subscribe(c => connection = c);
http.request('data.json').subscribe((res) => {
expect(res.text()).toBe('awesome');
async.done();
});
connection.mockRespond(new Response('awesome'));
}));
```
This method only exists in the mock implementation, not in real Backends.
.l-main-section
h2 Annotations
.l-sub-section
h3.annotation Injectable
pre.prettyprint
code.
@Injectable()
.l-sub-section
h3.annotation IMPLEMENTS
pre.prettyprint
code.
@IMPLEMENTS(ConnectionBackend)
.l-main-section
h2 Members
.l-sub-section
h3 constructor
pre.prettyprint
code.
constructor()
:markdown
.l-sub-section
h3 connections
:markdown
EventEmitter
of MockConnection
instances that have been created by this backend. Can be subscribed
to in order to respond to connections.
#Example
```
import {MockBackend, Http, BaseRequestOptions} from 'angular2/http';
import {Injector} from 'angular2/di';
it('should get a response', () => {
var connection; //this will be set when a new connection is emitted from the backend.
var text; //this will be set from mock response
var injector = Injector.resolveAndCreate([
MockBackend,
bind(Http).toFactory(backend, options) {
return new Http(backend, options);
}, [MockBackend, BaseRequestOptions]]);
var backend = injector.get(MockBackend);
var http = injector.get(Http);
backend.connections.subscribe(c => connection = c);
http.request('something.json').subscribe(res => {
text = res.text();
});
connection.mockRespond(new Response({body: 'Something'}));
expect(text).toBe('Something');
});
```
This property only exists in the mock implementation, not in real Backends.
.l-sub-section
h3 connectionsArray
:markdown
An array representation of `connections`. This array will be updated with each connection that
is created by this backend.
This property only exists in the mock implementation, not in real Backends.
.l-sub-section
h3 pendingConnections
:markdown
EventEmitter
of MockConnection
instances that haven't yet been resolved (i.e.
with a `readyState`
less than 4). Used internally to verify that no connections are pending via the
`verifyNoPendingRequests` method.
This property only exists in the mock implementation, not in real Backends.
.l-sub-section
h3 verifyNoPendingRequests
pre.prettyprint
code.
verifyNoPendingRequests()
:markdown
Checks all connections, and raises an exception if any connection has not received a response.
This method only exists in the mock implementation, not in real Backends.
.l-sub-section
h3 resolveAllConnections
pre.prettyprint
code.
resolveAllConnections()
:markdown
Can be used in conjunction with `verifyNoPendingRequests` to resolve any not-yet-resolve
connections, if it's expected that there are connections that have not yet received a response.
This method only exists in the mock implementation, not in real Backends.
.l-sub-section
h3 createConnection
pre.prettyprint
code.
createConnection(req: Request)
:markdown
Creates a new MockConnection
. This is equivalent to calling `new
MockConnection()`, except that it also will emit the new `Connection` to the `connections`
emitter of this `MockBackend` instance. This method will usually only be used by tests
against the framework itself, not by end-users.