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 的测试用例的主要内容,如果未能解决你的问题,请参考以下文章
Python接口测试实战4(下) - 框架完善:用例基类,用例标签,重新运行上次失败用例