首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在angular 10中对"@angular-redux/store“中的select进行单元测试?

如何在angular 10中对"@angular-redux/store“中的select进行单元测试?
EN

Stack Overflow用户
提问于 2020-10-05 18:30:33
回答 1查看 313关注 0票数 0

我有一个减速器,定义为:

代码语言:javascript
复制
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中使用它,如下所示:

代码语言:javascript
复制
 @select(["dummy_reducer", "emp_name"])
  emp_name$: Observable<any>;

另外,当组件初始化时,我使用emp_name$订阅,如下所示:

ngOnInit() { this.emp_name$.subscribe((details) => {.} });}

现在我的问题是,我如何为这个特定的组件编写单元测试,当我运行ng测试时,我得到的错误是:

代码语言:javascript
复制
 Cannot read property 'subscribe' of undefined ...

在这个ngOnInIt()。对如何修复它有什么建议吗?请让我知道我怎样才能写一个成功的规范文件。

EN

回答 1

Stack Overflow用户

发布于 2020-10-22 13:50:14

您需要导入NgReduxTestingModule,然后在组件中使用@select('loading') loading$: Observable<boolean>,我们可以对其进行测试:

代码语言:javascript
复制
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的代码参考查看更多测试示例

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64206872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档