问题标签 [angular-jest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
322 浏览

angular - 在 Angular 中安装 Jest 时无法读取未定义的属性“匹配项”

我想jset在我的角度项目中使用。当我运行以下命令时:

得到以下错误:

npm 错误!无法读取未定义的属性“匹配”

注意:在安装之前,我使用以下命令jest完全删除:Karam

我该如何解决?

提前致谢。

0 投票
1 回答
118 浏览

typescript - 更新到 27 后,Angular jest 不理解导入路径

这是一个奇怪的错误。所以我将 jest 更新为 27 并且都停止工作

导入路径似乎有问题。所以以下

不起作用,但这确实:

我猜这是在 tsconfig 中管理的。这是我的spectsconfig:

和主要的tsconfig:

任何可能导致此导入问题的建议

0 投票
0 回答
53 浏览

angular-spectator - 笑话/旁观者 spyOn ChangeDetectorRef

在我的 Angular 12 应用程序中,我将 aChangeDetectionStrategy.OnPush用于我的组件,然后ChangeDetectorRef通过构造函数注入 a 。我想测试我的方法并确保我正在检测更改。它总是告诉我它没有被调用。

我不知道如何检查是否被调用,因为间谍似乎不适用于 ChangeDetectorRef。我尝试的是这样的:

0 投票
1 回答
228 浏览

angular - 如果“app-user”是一个 Angular 组件并且它有“InwelcomeMsg”输入,那么验证它是这个模块的一部分

测试子组件时出现如下错误:

1. If 'app-user' is an Angular component and it has 'InwelcomeMsg' input, then verify that it is part of this module.

在测试组件时。我正在使用testing-libraryangular with jestjs。无法弄清楚这个问题。

容器组件.ts:

html:

子组件.ts:

child.test.spec:

不知道我在测试中想念她什么。有人帮我吗?

0 投票
0 回答
186 浏览

angular - Angular Jest 在 RxJS 7 上对 debounceTime 不起作用

我将我的 Angular 应用程序更新为 Angular 13,一切正常。然后我将 RxJS 从 6.6.0 更新到 7.4.0。之后,一些单元测试失败了。

伪测试:

伪代码

在测试中,订阅永远不会得到结果,所以它似乎debounceTime永远不会继续。知道如何解决这个问题吗?

我在用着

0 投票
0 回答
36 浏览

jestjs - 使用一种返回值的方法创建模拟服务(对象)

在 Angular 环境中,如何在Jest环境中轻松地为返回特定值的服务对象创建模拟服务?这可能是通过 ng-mocks 的 Jest 等。

一个过于简单的例子:

我研究了 Jest 和 ng-mocks 文档,但没有找到一个非常简单的方法。您可以在下面找到 2 种工作方法。你能改进版本吗?

我简化的 Angular 组件:

这是简化的服务:

尝试 1:一个可行的解决方案:使用“jest.genMockFromModule”。

缺点是我只能在每个系列测试开始时创建一个 returnValue,所以在 beforeEach 设置时间。

尝试 2:用“jest.createMockFromModule”替换“ jest.genMockFromModule ”:同样有效。

缺点仍然是我只能在每个系列测试开始时创建一个 returnValue,所以在 beforeEach 设置时间。

尝试 3:预先创建一个模拟对象:没用

这不起作用,给出错误:

尝试 4:使用 .fn()。缺点是原来的类可能会改变,那么测试对象必须改变。

这一次,错误是:

你能帮助改善这种工作方式吗?

0 投票
0 回答
72 浏览

angular - 如何解决错误“无法绑定到'ngIf',因为它不是'span'的已知属性”

我正在借助Jest 测试框架在 Angular 12 应用程序中开发单元测试。现在在测试运行后子组件中出现控制台错误“无法绑定到 'ngIf',因为它不是 'span' 的已知属性” 。

顺便说一句,检查*ngIf状态的数据是通过以下方式接收的@Input()

这是HTML:

这是 TypeScript 代码:

最后,这是测试文件的样子:

笔记:

我已阅读有关此错误的多项建议并做了以下事情:

  1. 检查是否存在CommonModule包含此组件的延迟加载模块
  2. 导入CommonModule.spec组件文件中
  3. 将组件包含在TestBed提供程序中
  4. 重新运行应用程序(多次)。
  5. 添加NO_ERRORS_SCHEMAschema数组中

但是,错误消息仍然出现。