问题标签 [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.
angular - 角度笑话,测试效果抛出未处理的错误
这是我的效果规范文件:当我运行它时
如何解决这个问题?
我的 setup-js 文件:
jestjs - 指令单元测试失败
我正在使用jest.js
我的角度应用程序进行测试。这是我在 html 中使用的指令:
这是我的directive.ts 文件:
这是为了显示输入字段周围的错误边框。我正在尝试像这样测试:
但是测试没有成功。出现如下错误:
任何人帮助我理解和解决这些问题?我对角度测试也不太熟悉 jest.js。
angular - Angular Jest 测试`找不到名称'By'。`
我将 Jest.JS 与 Angular 一起使用。当我尝试测试指令时,出现错误:
Cannot find name 'By'.
用我的node_module
- 安装东西需要什么?
指令.spec 文件:
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,也没有运气:(
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 渲染等等。但是我的问题仍然存在,我不确定这是一个错误,还是我只是愚蠢。在我继续在回购中打开一个问题之前,我只是想问一下这里有更多经验的人。
angular - Jest 迁移时令牌无效或意外
我正在将我的项目从 Karma-Jasmine 迁移到 Jest。但我收到以下错误。看来我缺少一些配置。
错误指出constructor(@Inject('env') env: IEnvironment,
从 app.component.ts 文件中导入的服务行。
错误如下
====ApiUrlProviderService====
====JEST.CONFIG====
====BABEL.CONFIG====
===Package.json===
如果您需要更多信息,请告诉我。
提前致谢。
angular - 模拟 Observable 以在 Jest 中抛出错误
我试图模拟 Angular 的PUT
调用HttpClient
以引发错误。我正在使用throwError
它。它不工作。我应该更改什么以使其抛出错误并调用该handleError
方法?我正在使用 Jest。
服务文件
angular - 无法覆盖 Angualr 和 Jest 中的异步函数中的代码:预期的调用次数:> = 1 收到的调用次数:0
我有一个异步方法,我正在调用其他 2 个返回承诺的方法。我在嘲笑uploadData
并addOrEdit
返回一个已解决的承诺。当我调用 时uploadFile
,uploadData
和addOrEdit
方法都被覆盖了,但是期望,即被addOrEdit
调用失败。我正在使用带有 Jest 的 Angular 9。
这是代码:
待测方法:
测试用例
javascript - 应该将 Snapshot 笑话单元测试与 Angular 相匹配
尝试在角度 10 中使用 Jest 进行快照测试并且测试应用程序失败
日期选择.component.spec.ts
我可以看到 .snap 文件已创建,我是 jest 单元测试的新手,任何人都可以帮助我我做错了什么,无法找出错误