我有一个减速器,定义为:
export const dummy_reducer = (state: any = INITIAL_STATE, action: any): any => {
const actionOptions = (actionType) => ({
GET_EMPLOYEE_DETAILS: () => {
return tassign(state, {
emp_name: action.payload.emp_name
});
},我在component.ts中使用它,如下所示:
@select(["dummy_reducer", "emp_name"])
emp_name$: Observable<any>;另外,当组件初始化时,我使用emp_name$订阅,如下所示:
ngOnInit() { this.emp_name$.subscribe((details) => {.} });}
现在我的问题是,我如何为这个特定的组件编写单元测试,当我运行ng测试时,我得到的错误是:
Cannot read property 'subscribe' of undefined ...在这个ngOnInIt()。对如何修复它有什么建议吗?请让我知道我怎样才能写一个成功的规范文件。
发布于 2020-10-22 13:50:14
您需要导入NgReduxTestingModule,然后在组件中使用@select('loading') loading$: Observable<boolean>,我们可以对其进行测试:
const stub = MockNgRedux.getSelectorStub('loading');
stub.next(false);
stub.next(true);
stub.complete();
component.loading$
.toArray()
.subscribe(
actualSequence => expect(actualSequence).toEqual([ false, true ]),
null,
done);您甚至可以模拟beforeEach函数中的数据,以便它可用于所有测试:)
取自here的代码参考查看更多测试示例
https://stackoverflow.com/questions/64206872
复制相似问题