问题标签 [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 投票
0 回答
240 浏览

angular - 角度笑话,测试效果抛出未处理的错误

这是我的效果规范文件:当我运行它时

如何解决这个问题?

我的 setup-js 文件:

0 投票
1 回答
494 浏览

jestjs - 指令单元测试失败

我正在使用jest.js我的角度应用程序进行测试。这是我在 html 中使用的指令:

这是我的directive.ts 文件:

这是为了显示输入字段周围的错误边框。我正在尝试像这样测试:

但是测试没有成功。出现如下错误:

任何人帮助我理解和解决这些问题?我对角度测试也不太熟悉 jest.js。

0 投票
1 回答
486 浏览

angular - Angular Jest 测试`找不到名称'By'。`

我将 Jest.JS 与 Angular 一起使用。当我尝试测试指令时,出现错误:

Cannot find name 'By'.

用我的node_module- 安装东西需要什么?

指令.spec 文件:

0 投票
1 回答
995 浏览

angular - 带有 Jest 的 Angular 8 - 'jasmine' 没有导出的成员 'SpyObj'

我有一个具有默认 Karma 测试运行器的 Angular CLI 项目。我使用本教程将 Karma 替换为 Jest,并注意到一些测试通过了一些失败。

例如,在测试级别声明一个变量:

抛出错误:

0 投票
1 回答
928 浏览

angular - 如何模拟 Angular 外部 Javascript 对象

我有一个 Angular 应用程序,其唯一目的是构建 @angular/elements(没有 index.html、没有 app.component 等)。

这些元素在 .NET Mvc 应用程序中使用,它提供了两种我试图在单元测试中模拟的东西:

1 - 外部库

例如,JQuery、lodash 等。

2 - 客户端框架“foo”

在包含我的 Web 元素的 .NET MVC 视图中,MVC 应用程序创建了一个名为 foo 的对象。该对象不是 ES6 模块。它是用漂亮的 foo = new Foo({ someOptionsGeneratedFromServerSide}); 手动创建的。

这两种情况都在我的网络元素中使用。例如,一个组件将使用函数 foo.displayAlert('With a message')。我发现使我的角度应用程序遵守的唯一解决方案是添加以下内容:

我知道这是非常不正统的。

Angular 应用程序运行良好,直到我尝试进行一些单元测试。注意:它不能单独工作(ng serve 如预期的那样无用)。

一个例子

对于这个组件/钩子:

将崩溃并显示以下(非常预期的)消息:

我试图在测试之前明确地模拟对象:

到目前为止没有运气。我在 x.spect.ts 中做了很多关于这个对象的嘲笑尝试,但没有结果。

我尝试使用 index.html 创建另一个 Angular 应用程序,其中包含所有资源,例如 MVC 视图,但它失败了。

最后的笔记

对于像 JQuery / lodash 这样的第 3 方,我不希望将它们添加到我的 Angular 项目中,例如: npm i -D lodash 因为我不希望它们包含在我的 vendor.js 文件中。这些库由 .Net Mvc 应用程序提供,这很好。这也适用于 foo 对象。最后,我尝试使用 (Jest) 和不使用 (Karma) 无头浏览器进行测试。

任何帮助将非常感激!

编辑 27/03/2020

请救救我!

编辑 28/03/2020

试过 jasmine.createSpyObject & spyOn,也没有运气:(

0 投票
0 回答
351 浏览

angular - 无法覆盖 Angular 9 中的提供程序

当试图在测试用例中覆盖提供者时,Testbed.overrideProvider它实际上并没有覆盖任何东西。

它曾经与茉莉花一起工作得很好 angular 9,不确定 angular 9 发生了什么变化而破坏了它。

任何帮助都会得到帮助。.bg-image在我的应用程序 html 组件中,当 layout$ 包含“mobile”时,我将删除它。

这是我所拥有的:

app.component.spec.ts

在我的一个测试用例it()中,我正在做

我曾经用 Angular 6 来覆盖这样的Provider,并且有一段时间没有使用 Angular 了。今天我开始使用 Angular 9 开发一个新项目,即使它具有这些相同的模拟方法overrideProvider也不再起作用。我知道自 Angular 6 以来实际上发生了很多变化,例如默认测试框架已从 jasmine 更改为 jest 和新的 ivy 渲染等等。但是我的问题仍然存在,我不确定这是一个错误,还是我只是愚蠢。在我继续在回购中打开一个问题之前,我只是想问一下这里有更多经验的人。

0 投票
1 回答
769 浏览

angular - Jest 迁移时令牌无效或意外

我正在将我的项目从 Karma-Jasmine 迁移到 Jest。但我收到以下错误。看来我缺少一些配置。

错误指出constructor(@Inject('env') env: IEnvironment,从 app.component.ts 文件中导入的服务行。

错误如下

====ApiUrlProviderService====

====JEST.CONFIG====

====BABEL.CONFIG====

===Package.json===

如果您需要更多信息,请告诉我。

提前致谢。

0 投票
2 回答
6964 浏览

angular - 模拟 Observable 以在 Jest 中抛出错误

我试图模拟 Angular 的PUT调用HttpClient以引发错误。我正在使用throwError它。它不工作。我应该更改什么以使其抛出错误并调用该handleError方法?我正在使用 Jest

服务文件

0 投票
1 回答
302 浏览

angular - 无法覆盖 Angualr 和 Jest 中的异步函数中的代码:预期的调用次数:> = 1 收到的调用次数:0

我有一个异步方法,我正在调用其他 2 个返回承诺的方法。我在嘲笑uploadDataaddOrEdit返回一个已解决的承诺。当我调用 时uploadFileuploadDataaddOrEdit方法都被覆盖了,但是期望,即被addOrEdit调用失败。我正在使用带有 Jest 的 Angular 9。

这是代码:

待测方法:

测试用例

0 投票
1 回答
503 浏览

javascript - 应该将 Snapshot 笑话单元测试与 Angular 相匹配

尝试在角度 10 中使用 Jest 进行快照测试并且测试应用程序失败

日期选择.component.spec.ts

我可以看到 .snap 文件已创建,我是 jest 单元测试的新手,任何人都可以帮助我我做错了什么,无法找出错误