unit-testing - 角度测试在组件中模拟 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 任何建议/帮助将不胜感激。
解决方案
推荐阅读
- c# - 如何移动滑块 AutoScroll(按钮)
- r - R-3.4.4 的 Dockerfile,如何减少 docker build 的时间,至少需要 30 分钟
- javascript - 如何动态更新 DataTable 中的单元格?
- nginx - 如何在 Heroku 上设置 Nginx 以提供从端口 80 到端口 5000 的流量?
- master-theorem - 主定理:为什么 T(n)=16T(n/4)+n!考虑 Θ(n!)
- javascript - request(app).del()/.delete() 如何为 Mocha/Supertest 工作?
- spyder - Spyder在cmd中闪烁并关闭
- java - 为什么Android倒数计时器运行超过零
- settimeout - setTimeout 在时间之前执行函数
- javascript - 在javascript中的问号、感叹号或句点处拆分字符串并保留这些标记?