On this page
MockBackend
class deprecated
A mock backend for testing the Http service.
Deprecated: see https://angular.io/guide/http
class MockBackend implements ConnectionBackend {
  connections: any
  connectionsArray: MockConnection[]
  pendingConnections: any
  verifyNoPendingRequests()
  resolveAllConnections()
  createConnection(req: Request): MockConnection
}
   Description
This class can be injected in tests, and should be used to override providers to other backends, such as XHRBackend.
Properties
| Property | Description | 
|---|---|
connections: any | 
       EventEmitter of  This property only exists in the mock implementation, not in real Backends.  | 
      
connectionsArray: MockConnection[] | 
       An array representation of  This property only exists in the mock implementation, not in real Backends.  | 
      
pendingConnections: any | 
       EventEmitter of  This property only exists in the mock implementation, not in real Backends.  | 
      
Methods
| 
         
          verifyNoPendingRequests() 
          | 
      
|---|
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.  | 
      
| 
         
          resolveAllConnections() 
          | 
      
|---|
Can be used in conjunction with   | 
      
  | 
      
This method only exists in the mock implementation, not in real Backends.  | 
      
| 
         
          createConnection() 
          | 
      ||
|---|---|---|
Creates a new   | 
      ||
  | 
      
| req | Type:   | 
          
Returns
Usage notes
Example
import {Injectable, Injector} from '@angular/core';
import {async, fakeAsync, tick} from '@angular/core/testing';
import {BaseRequestOptions, ConnectionBackend, Http, RequestOptions} from '@angular/http';
import {Response, ResponseOptions} from '@angular/http';
import {MockBackend, MockConnection} from '@angular/http/testing';
const HERO_ONE = 'HeroNrOne';
const HERO_TWO = 'WillBeAlwaysTheSecond';
@Injectable()
class HeroService {
  constructor(private http: Http) {}
  getHeroes(): Promise<String[]> {
    return this.http.get('myservices.de/api/heroes')
        .toPromise()
        .then(response => response.json().data)
        .catch(e => this.handleError(e));
  }
  private handleError(error: any): Promise<any> {
    console.error('An error occurred', error);
    return Promise.reject(error.message || error);
  }
}
describe('MockBackend HeroService Example', () => {
  beforeEach(() => {
    this.injector = Injector.create([
      {provide: ConnectionBackend, useClass: MockBackend},
      {provide: RequestOptions, useClass: BaseRequestOptions},
      Http,
      HeroService,
    ]);
    this.heroService = this.injector.get(HeroService);
    this.backend = this.injector.get(ConnectionBackend) as MockBackend;
    this.backend.connections.subscribe((connection: any) => this.lastConnection = connection);
  });
  it('getHeroes() should query current service url', () => {
    this.heroService.getHeroes();
    expect(this.lastConnection).toBeDefined('no http service connection at all?');
    expect(this.lastConnection.request.url).toMatch(/api\/heroes$/, 'url invalid');
  });
  it('getHeroes() should return some heroes', fakeAsync(() => {
       let result: String[];
       this.heroService.getHeroes().then((heroes: String[]) => result = heroes);
       this.lastConnection.mockRespond(new Response(new ResponseOptions({
         body: JSON.stringify({data: [HERO_ONE, HERO_TWO]}),
       })));
       tick();
       expect(result.length).toEqual(2, 'should contain given amount of heroes');
       expect(result[0]).toEqual(HERO_ONE, ' HERO_ONE should be the first hero');
       expect(result[1]).toEqual(HERO_TWO, ' HERO_TWO should be the second hero');
     }));
  it('getHeroes() while server is down', fakeAsync(() => {
       let result: String[];
       let catchedError: any;
       this.heroService.getHeroes()
           .then((heroes: String[]) => result = heroes)
           .catch((error: any) => catchedError = error);
       this.lastConnection.mockError(new Response(new ResponseOptions({
         status: 404,
         statusText: 'URL not Found',
       })));
       tick();
       expect(result).toBeUndefined();
       expect(catchedError).toBeDefined();
     }));
});
  © 2010–2019 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
 https://v6.angular.io/api/http/testing/MockBackend