首页 > 解决方案 > 如何在角度可观察订阅中对代码进行单元测试

问题描述

我正在为 observable 订阅中的代码编写单元测试用例,如下所示。但是这个测试失败了。有人可以在这里指出我的错误。

****组件.ts****

this.myService.myData$.pipe(takeUntil(this.destroy)).subscribe(data=>{
 if (this.oldValue !== this.currentValue) {
  callThisFunction(data); 
}
})

****单元测试用例***** 将 myServiceMock 作为 TestBed 中 myService 的 useValue

 myServiceMock = {
       myValue: 'value'
       myData$: of([{a: 'name', b: 'age'}]) 
    }

it('test my data', done => {
        const myFuncStub = sinon.stub(component, 'callThisFunction');
        component.oldValue = 'x';
        component.myData$.subscribe(item => {
          expect(myFuncStub).to.have.been.called;
          done();
        });
      });

标签: angularkarma-jasmine

解决方案


推荐阅读