模拟服务调用返回Angular 2中的可观察对象?

vinnylinux

我一直在尝试模拟一些在Angular应用中返回可观察值的服务调用,但是我根本无法创建将触发类似catch()map()在我的代码中调用的有效可观察对象例如:

我的服务:

create(): Observable<any> {
    return this.http
    .post('/api/stuff', { id: 123 })
    .catch(this.handleError)
    .map(this.extractData);
}

我的规格:

let authHttpMock = mock(AuthHttp);
when(authHttpMock.post('/api/stuff', { id: 123 })).thenReturn(Observable.create(observer => {
  observer.error(new Error('500!'));
}));

const myService = new MyService(instance(authHttpMock));
myService.create({ id: 123 }).subscribe(
    result => {
    expect(result).toBeTruthy();
    }
);

覆盖率分析告诉我该handleError方法从未执行过。在成功观察到的情况下,它也不会通过该extractData方法。

那可观察到的地方在哪里?我如何返回适当的可观察值以测试此类调用?

比尔文

在您的测试代码中,我相信您需要以下代码:

AuthHttp.post('/api/stuff', {id : 123 }).subscribe(data => {});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Angular2中的可观察对象

在Angular 2中为模拟数据创建可观察对象

从Angular HttpInterceptor中的可观察对象返回可观察对象

如何在Angular2的可观察对象中创建可观察对象

在组件之间共享可观察对象/在Angular2中多播可观察对象

Angular2:守卫中的嵌套可观察对象

Angular 2中的身份验证,处理可观察对象

在Angular 2中对可观察对象进行单元测试

在Angular 2中链接RxJs可观察对象

Angular2-返回在map函数中创建的对象的可观察对象

使用可观察对象时如何防止Angular 2中的http调用?

如何在Angular 7中返回可观察对象?

如何在Angular中返回可观察对象?

无法从可观察对象数组中返回过滤后的可观察对象

Angular2:子属性更改时更新可观察对象(嵌套的可观察对象)

更改Angular / Jasmine / Redux中每个测试的模拟服务返回的可观察值

Angular 2 如何在可观察更改/服务返回新结果时调用服务方法?

开机自检后如何刷新angular2中的可观察对象

可观察对象以及如何在Angular2中正确使用它们

在Angular2中使用RxJS链接可观察对象

将可观察对象中的数组与ngFor和Async Pipe Angular 2一起使用

如何在Angular 2中“链接”两个单独的可观察对象

将文本输入绑定到可观察对象中的属性-Angular 2+

Angular2 rxjs通过可观察字段对对象列表进行排序(可观察)

如何模拟服务Angular 7中的可观察值?

Rxjs结合了2个可观察对象,Angular 2

我想用Angular2中的第一个调用第二个可观察对象

嵌套服务中的角嵌套可观察对象-如何

可观察对象在webapi上不工作angular 2