[Angular7][Jest]如何测试合并图?
我需要你的帮助:) 我使用了angular 7和Rxjs。为了考试,我开玩笑 我的组件在2个httpClient之间使用MergeMap,如下所示:[Angular7][Jest]如何测试合并图?,angular,testing,rxjs,jestjs,angular7,Angular,Testing,Rxjs,Jestjs,Angular7,我需要你的帮助:) 我使用了angular 7和Rxjs。为了考试,我开玩笑 我的组件在2个httpClient之间使用MergeMap,如下所示: addPost() { this.postService.createPost(post).pipe( mergeMap( (response) => { return this.postService.getPost(response.headers.get('Location'));} ) ).subscribe(
addPost() {
this.postService.createPost(post).pipe(
mergeMap( (response) => { return this.postService.getPost(response.headers.get('Location'));} )
).subscribe(
(post) => {
this.content =""; this.postService.addingPostToArray(post);
}, (error) => {
//todo
}
);
}
it('should test addPost OK', () => {
postService = TestBed.get(PostService);
spyOn(postService, 'createPost').and.returnValue(of('test'));
spyOn(postService, 'getPost').and.returnValue(of('test'));
component.addPost();
expect(postService.createPost).toHaveBeenCalled();
expect(postService.getPost).toHaveBeenCalled();
我的邮政服务:
createPost(post:Post) {
return this.httpClient
.post('http://localhost:8080/posts', {post: post}, {observe: 'response'});
}
getPost(url: any) {
return this.httpClient.get<Post>(url);
}
}))
但问题是我的getPost从未被调用
expect(spy).toHaveBeenCalled()
Expected spy to have been called, but it was not called.
131 |
132 | expect(postService.createPost).toHaveBeenCalled();
> 133 | expect(postService.getPost).toHaveBeenCalled();
如何测试合并映射
我希望我的解释不要太奇怪:)
谢谢你的帮助;) 字符串测试将不具有属性response.headers.get('Location') 试一试
字符串测试不具有属性response.headers.get('Location') 试一试
spyOn(postService, 'createPost').and.returnValue(of({ headers: { get: _ => 'test' } }));