问题标签 [angular-testing-library]
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 - 在Angular单元测试中使用ngValue时如何获取选择的值
在我的 Angular 应用程序中,我<select>
绑定了如下的反应形式:
在这个阶段,mySelectValues
是一个字符串数组。
我像这样进行组件 dom 测试:
这工作正常。但是,在某些时候,在某些选择中,我需要在某些地方将对象作为值而不是纯字符串/数字。
所以我改变了我的 HTML 代码来[ngValue]
代替[value]
:
此时,在我的测试中,值select.value
不再是,'ABC'
而是变成类似于'2: ABC'
where 2
is the index of the selected option,然后是列 + 空格,然后是实际值。
到目前为止,我可以忍受这个,只需将我的测试更改为:
它一直在工作。但是,在某些地方,我需要将对象用作值,因此mySelectValues
不是纯字符串/数字数组,而是对象数组。
例如:
所以像这样改变HTML:
选择现在可以很好地处理对象。但是,我的测试不再有效,因为select.value
现在总是返回值,例如'2: Object'
因为选择了一个对象而不再是纯字符串。
我怎么解决这个问题?
换句话说:给定一个与绑定到对象一起<select>
使用的 a,我怎样才能获得 的选定值(通过 DOM 访问它,就像在我的原始测试用例中一样)?<option>
[ngValue]
<select>
angular - 在 Angular 项目中使用 Jasmine-DOM
我有一个 Angular 10 CLI 项目(v10.1.2)。我已经安装了@testing-library/angular@10.0.2
,我想要好的匹配器.toBeInTheDocument()
,但是当我使用 Karma 运行 Jasmine(通过 Angular 配置)和 Typescript 时,我不确定如何安装@testing-library/jasmine-dom
匹配器?
我尝试按照最新版本(v1.1.0)的说明进行操作,但是虽然我可以HTMLMatchers
在 VSCode 中看到类型上的匹配器,但我实际上无法添加匹配器。尝试导入它们import JasmineDOM from '@testing-library/jasmine-dom';
会出现错误File C:/.../node_modules/@types/testing-library__jasmine-dom/index.d.ts
不是模块。
由于这是一个 Angular CLI 项目,Jasmine 支持 Karma,所以使用 Karma 插件真的更有意义吗?(我什么都看不到……)
react-testing-library - 停止测试库的巨大错误输出
我喜欢testing-library
,在 React 项目中使用了很多,我现在正尝试在 Angular 项目中使用它——但我一直在为巨大的错误输出而苦苦挣扎,包括渲染的 HTML 文本。这不仅通常没有帮助(我找不到元素,这是没有的 HTML );但是如果您在调试模式下运行,它通常会在有趣的行之前被截断。
我只是将它作为一个库添加到标准 Angular Karma+Jasmine 设置旁边。
我敢肯定,如果 HTML 输出导致我的控制台窗口长时间假脱机,您可能会说我正在测试的组件太大,但是我在 Protractor 中有很多集成测试,而且它们太慢了:(。
angular - Jest + angular-testing-library:模拟翻译服务
我正在尝试使用 angular-testing-library 测试组件,但我不知道如何从@ngx-translate
我的精简组件:
我的测试:
收到此错误:
并且测试挂起。
更新
我的jest.config.js
:
package.json 笑话条目:
angular - Angular 11 无法测试是否调用了 url
我遇到了角度测试的问题。我想检测按钮单击时url 何时更改。我在堆栈上关注了很多类似的问题,但自 1 周以来无法实现我的目标:/
解释
这是我的 HTML 模板:
这是我的测试:
当我运行测试时,我有两个错误:
研究
- 在对堆栈进行了一些研究之后,我设法
RouterTestingModule
从导入中删除,现在我得到了:
- 堆栈上的另一个搜索:p,我设法删除
{ provide: Router, useValue: router }
但保留RouterTestingModule
,我得到:
注意:我注意到删除时所有链接都没有呈现RouterTestingModule
,所以我认为解决方案是实现组合RouterTestingModule
和{ provide: Router, useValue: router },
?
- 当我使用 a
(click)
而不是routerLink
它运行良好时,为什么?
任何帮助都会很棒:)提前谢谢!
angular - Angular 单元测试:此构造函数与 Angular 依赖注入不兼容
我正在尝试编写一个 Angular 单元测试(使用 Angular 测试库)并得到一个奇怪的错误。这是我要测试的组件:
这是我的测试:
运行此测试时收到的消息:
此构造函数与 Angular 依赖注入不兼容,因为它在参数列表索引 0 处的依赖无效。
这里有什么问题?
javascript - 在 Angular 测试库测试中渲染 html 属性
我正在为我的角度测试使用测试库,并且我有一种情况,我需要从 HTML 中设置一个属性,以便能够以我想要的方式呈现组件......这个属性来自一个模块,我试图渲染通过componentProperties传递它的组件,但它不起作用......你们知道如何在我的测试中设置这个属性,以便我可以正确渲染我的组件吗?
我需要渲染 html 上的 ifMobile 属性,如下所示:
这就是我试图测试的方式:(以这种方式测试运行,没有显示任何错误,但是,它没有渲染组件,它基本上没有改变我的组件)
我也尝试过以这种方式进行测试(以这种方式我什至无法运行测试,因为它说 ifMobile 不是有效的属性)
angular - 带有 jest 和 @testing-library/angular 的 mat-menu 单元测试用例
我有一个使用mat-menu
Angular Material UI 的组件。当我打电话时fireEvent.click()
,我收到一个错误:TestingLibraryElementError: Unable to find role="menu"
在控制台中。
这是我的测试用例:
我无法指出我哪里出错了。我还从这里阅读了 MatMenuHarness 文档。
我正在使用@testing-library/angular和jest。
angular - 如何使用测试库重新呈现 Angular 属性指令
鉴于这个非常微不足道的属性指令,它所做的只是将输入中的文本放入 innerText
我正在尝试使用rerender
from@testing-library/angular
轻松更改输入:
第二个断言不起作用 - 有或没有fixture.detectChanges()
.
那么,测试这样一个指令的正确方法是什么?尤其是 当您有几个输入并且您想在测试期间一次更改它们的所有值时。
angular - 在 mat-paginator 上使用 @testing-library/angular (page) 属性方法进行 Angular 10 测试
我的<mat-paginator>
元素工作正常,我只想知道如何使用@testing-library/angular 库测试属性的getPaginatorData
方法?(page)
这是我的组件
提前致谢。