假设我们有一个简单的类,它在window.resize事件上向RxJS主题发出新事件。不用理会它太复杂了。关键是此类会发出一些事件。
export class ResizeService {
private resizeSubject = new Subject();
public onResize(): Observable<Window> {
return this.resizeSubject.asObservable();
}
constructor(private eventManager: EventManager) {
this.eventManager.addGlobalEventListener('window', 'resize', (e) => {
this.resizeObject.next(<Window>event.target)
})
}
private onResize(event: UIEvent) {
this.resizeObject.next(<Window>event.target);
}
}
问题是,就该类的单元测试而言,我们是否应该检查客户端发送给RxJS主题的新事件实际上是否将被客户端接收,即方法onResize
。像这样:
it('should emit a value', fakeAsync(() => {
let subscriptionWorks = false;
fireWindowResizeEvent(new Event({width: 600; height: 400});
resizeService.onResize().subscribe(() => subscriptionWorks = true);
expect(subscriptionWorks).toBeTruthy();
})
)
然后如果某些开发人员将onResizeMethod更改为此,则测试将失败:
public onResize(): Observable<Window> {
return this.resizeSubject.asObservable().skip(10);
}
答案 0 :(得分:0)
我认为您所描述的实际上是ResizeService与客户端之间的集成测试。所以不,你不会。无需对该单元进行测试。