Action ngrx 4 的测试用例

Posted

技术标签:

【中文标题】Action ngrx 4 的测试用例【英文标题】:Test case for Action ngrx 4 【发布时间】:2020-09-17 21:35:34 【问题描述】:

我是 ngrx 的新手,我们有 angular proj,它使用 ngrx 存储/状态数据。现在我必须为所有操作、reducer 和其他代码编写一个测试用例。但我一直在为这些动作编写测试用例。谷歌搜索但没有找到帮助。

export enum ProjAction 
   INSERT_RECORD = "[ProjAction] Insert a record."


export class ProjActionCreator(private store: Store<ProjState>) 
   insertRecord(data: any) 
        this.store.dispatch(<Action>
           type: ProjAction.INSERT_RECORD,
           payload: data
        )
   

我试图制作一个间谍对象并进行调度,但这对我没有帮助。 任何帮助将不胜感激。

【问题讨论】:

ngrx.io/guide/store/testing => 您可以使用模拟或实际存储实现来测试组件。 ultimatecourses.com/blog/ngrx-store-testing-actions => 测试动作 ultimatecourses.com/blog/ngrx-store-testing-reducers => 测试减速器 @AliF50 感谢您分享链接。我之前也访问了该链接,但在我的情况下它不起作用。我已经为其他其他组件链接 ng comp、服务、商店和其他人编写了测试用例。如上所述,只是坚持为 Action 编写测试用例。 【参考方案1】:

为此,您只需断言 this.store.dispatch 已使用所需的参数调用。

it('test', () => 
  // preparation
  const store = TestBed.get(Store);
  spyOn(store, 'dispatch');

  // action
  component.insertRecord(test: '123');

  // assertion
  expect(store.dispatch).toHaveBeenCalledWith(
    type: ProjAction.INSERT_RECORD,
    payload: 
      test: '123',
    ,
  );
);

【讨论】:

以上是关于Action ngrx 4 的测试用例的主要内容,如果未能解决你的问题,请参考以下文章

使用 Jest 的不可理解的单元测试效果错误

Python接口测试实战4(下) - 框架完善:用例基类,用例标签,重新运行上次失败用例

面试测试开发工程师:用例篇

WindowsGUI自动化测试框架搭建-自动化测试用例脚本设计

测试用例

如何从 UI 测试用例类访问 SwiftUI 视图的属性?