首页 > 解决方案 > Angular - 如何测试返回 Observable 的方法

问题描述

我有一个返回 Observable 的方法:

public hasFiltersSelected(): Observable<boolean> {
return this.store.pipe(
  select(selectSelectedFilters),
  map(obj => Object.keys(obj).length > 0)
);

}

有谁知道我应该如何对此进行单元测试?tyvm

标签: angularunit-testingngrxngrx-store

解决方案


你可以尝试这样的事情。其中“服务”是包含 hasFilterSelected() 的实例

it('should return observable of true', () => {
    spyOn(service, 'hasFilterSelected');
    service.hasFilterSelected().subscribe((resp) => {
        expect(resp).toEqual(true);
    }
    expect(service.hasFilterSelected).toHaveBeenCalled();
}

推荐阅读