2016-01-02 16 views
7

Jak napisać jaśmin testową przypadku następnych klasa ma konstruktora, który jest o zależność od httpTesting Service angular2 mający konstruktor z uzależnienia http

import {Injectable} from 'angular2/core'; 
import {Http, HTTP_PROVIDERS} from 'angular2/http'; 

@Injectable() 
export class MockUserService { 
    items:Array<any>; 

    constructor(http:Http){ 
     http.get('http://127.0.0.1:8080/src/data/names.json') 
     .subscribe(res => { 
      this.items = res; 
      console.log('results found'); 
     }) 
    } 
} 

próbowałem w następujący sposób,

it('Testing user login', inject([MockUserService,Http], (mockUserService:MockUserService) => { 
    let http:Http; 
     let mockUserService: MockUserService = new MockUserService(http); 
    expect(1+1).toEqual(2); 

    }); 
); 

Otrzymuję komunikat DI: DI error Image

Odpowiedz

1

Można użyć beforeEachProviders do DI łatwo jak poniżej:

beforeEachProviders(() => [ 
    HTTP_PROVIDERS, 
    MockUserService 
]); 

describe('MockUser Service',() => { 
    it('Testing user login', 
    inject([MockUserService], (service: MockUserService) => { 
     expect(1 + 1).toEqual(2); 
    })); 
}); 

Mam nadzieję, że będzie wam (co najmniej 6 miesięcy temu) pomóc.

Powiązane problemy