小编ste*_*hin的帖子

单元测试RxJS Observable.timer使用typescript,karma和jasmine

嗨,我对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)

unit-testing rxjs5 angular

7
推荐指数
1
解决办法
6693
查看次数

标签 统计

angular ×1

rxjs5 ×1

unit-testing ×1