我正在尝试编写 Jest 测试,但有些代码非常困难,例如我们执行
store.dispatch
操作的 NgRx 代码。我搜索了示例或 Jest 文档、视频教程、ChatGPT,我意识到找到有关它的文档并不容易。同样的例子在我的尝试中失败了。我现在只想为操作和选择编写一个测试。
这是一个简单的例子:
import { Injectable } from '@angular/core';
import { Store } from '@ngrx/store';
@Injectable({ providedIn: 'root' })
export class MyService
{
constructor(
private store: Store,
) {}
startAction(){
this.store.dispatch(MyActions.Action1());
}
}
如果没有具体问题,很难回答这个问题。
这就是为什么我建议您参考涵盖测试的 NgRx 文档 https://ngrx.io/guide/store/testing,或者我自己关于同一主题的博客文章 https://timdeschryver.dev/blog/testing -an-ngrx-项目.
简而言之,有多种方法可以使用对减速器/选择器/效果进行隔离单元测试、使用模拟存储在组件级别进行单元测试或使用真实存储实例对组件进行集成测试来进行测试。