rxjs 和 angular 的新手,尝试为一个简单的 rxjs 可观察的成功/错误场景编写一些基本的单元测试:
服务方式:
export class MyService {
constructor(private http: HttpClient) {}
public getId(id) {
return this.http.get('www.myurl.com/' + id, {
withCredential: true,
responseType: 'json' as 'json'
})
.pipe(
map(response => {
return response;
}),
catchError(() => {
return 'Service returned error';
})
};
}
}
测试:
it('should throw an error',() => {
spyOn(httpClientMock, 'get').and.returnValue(Observable.throw('error));
myService.getId('test1')
.subscribe(
() => {},
error => {
expect(error).toEqual('Service returned error');
}
};
});
但是,如果我将期望语句更改为:
expect(error).toEqual('Service returned erro');
单元测试仍然通过。
如果我注销错误,我会看到:
S
e
r
v
i
c
e
r
e
t
u
r
n
e
d
e
r
r
o
r