首页 > 解决方案 > 角度测试在组件中模拟 store.pipe

问题描述

我有一个承载不同组件的容器。角度服务调用 restAPI 并使用数据更新存储。现在组件从存储中获取数据,如下所示,getEmloyeeState 下面的 nginit() 是从存储中获取数据的选择器。

ngOnInit(): void {
    this.store.pipe(select(getEmployeeState)).subscribe(emp => {
      this.employee = emp;
    });
  }  

为了测试我试图模拟 store.pipe 的组件,如下所示。

beforeEach(() => {
mockStore = jasmine.createSpyObj('store', ['pipe']);

 it('When ngOnInit called, it should initlize emp object',
            () => {
              mockStore.pipe.and.callFake(() => {
                return {
                  subscribe: (callback) => {
                    callback({
                      empObj: empObj
                    })
                  }
                }
              });
              empComponent.ngOnInit();
              expect(empComponent.employee.empId).toEqual('EMP1000');
            });
        }); 

看起来像模拟 store.pipe 传递但在 ngOnInit 中,员工对象没有被初始化,因为它返回Expected undefined to equal EMP1000 任何建议/帮助将不胜感激。

标签: unit-testing

解决方案


推荐阅读