195 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			195 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | 
 | ||
|  | p.location-badge. | ||
|  |   exported from <a href='../http'>angular2/http</a> | ||
|  |   defined in <a href="https://github.com/angular/angular/tree/2.0.0-alpha.32/modules/angular2/src/http/backends/mock_backend.ts#L99-L228">angular2/src/http/backends/mock_backend.ts (line 99)</a> | ||
|  | 
 | ||
|  | :markdown | ||
|  |   A mock backend for testing the <a href='Http-class.html'><code>Http</code></a> service. | ||
|  |    | ||
|  |   This class can be injected in tests, and should be used to override bindings | ||
|  |   to other backends, such as <a href='XHRBackend-class.html'><code>XHRBackend</code></a>. | ||
|  |    | ||
|  |   #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 Members | ||
|  |   .l-sub-section | ||
|  |     h3 constructor | ||
|  | 
 | ||
|  |      | ||
|  |     pre.prettyprint | ||
|  |       code. | ||
|  |         constructor() | ||
|  |      | ||
|  |     :markdown | ||
|  |        | ||
|  |        | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |   .l-sub-section | ||
|  |     h3 connections | ||
|  | 
 | ||
|  |      | ||
|  |     :markdown | ||
|  | 
 | ||
|  |       <a href='../core/EventEmitter-class.html'><code>EventEmitter</code></a> | ||
|  |       of <a href='MockConnection-class.html'><code>MockConnection</code></a> 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 | ||
|  | 
 | ||
|  |       <a href='../core/EventEmitter-class.html'><code>EventEmitter</code></a> of <a href='MockConnection-class.html'><code>MockConnection</code></a> 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 <a href='MockConnection-class.html'><code>MockConnection</code></a>. 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. | ||
|  |        | ||
|  |        | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 |