茉莉花测试中的下一个方法后可观察到的订阅方法未被调用

时间:2019-05-28 20:16:48

标签: angular unit-testing jasmine

我正在尝试编写一个测试来验证页面大小的更改,以运行在类构造函数中声明的可观察的订阅方法,如下所示:

this.subject
  .asObservable()
  .debounceTime(500)
  .filter(Boolean)
  .subscribe((pageSize: number) => {
     this.load({...params, pageSize: pageSize})
   })

并提供一种更改页面大小的方法:

public onPageSizeChange(size: number): void {
   this.page = 1;
   this.subject.next(size);
}

在我对该组件的测试中:

it('subject test', () => {
      spyOn(component, 'onPageSizeChange').and.callThrough();
      spyOn(component, 'load');

      component.onPageSizeChange(50);
      expect(component.onPageSizeChange).toHaveBeenCalled(); //pass
      expect(component.load).toHaveBeenCalled(); //fail
    });

但是不幸的是,即使我在测试组件中为component.subject创建了新的订阅者,也没有调用我的订阅。你看到我在这里想念的吗?

0 个答案:

没有答案