嗨,我对Angular2,Karma和Jasmine相对较新.目前我正在使用Angular 2 RC4 Jasmine 2.4.x我有一个Angular 2服务,定期调用这样的http服务:
getDataFromDb() { return Observable.timer(0, 2000).flatMap(() => {
return this.http.get(this.backendUrl)
.map(this.extractData)
.catch(this.handleError);
});
}
Run Code Online (Sandbox Code Playgroud)
现在我想测试功能.出于测试目的,我刚刚在没有Observable.timer的单独函数上测试了"http.get":
const mockHttpProvider = {
deps: [MockBackend, BaseRequestOptions],
useFactory: (backend: MockBackend, defaultOptions: BaseRequestOptions) => {
return new Http(backend, defaultOptions);
}
}
describe('data.service test suite', () => {
var dataFromDbExpected: any;
beforeEachProviders(() => {
return [
DataService,
MockBackend,
BaseRequestOptions,
provide(Http, mockHttpProvider),
];
});
it('http call to obtain data',
inject(
[DataService, MockBackend],
fakeAsync((service: DataService, backend: MockBackend) => {
backend.connections.subscribe((connection: MockConnection) => {
dataFromDbExpected …
Run Code Online (Sandbox Code Playgroud)