当前位置: 首页 > 知识库问答 >
问题:

无法加载测试工具环境或如何点击MatRadoButton

白高超
2023-03-14

在我的一个单元测试的Angular 10应用程序中,我需要点击MatRadioButton。

在这里我找到了https://material.angular.io/guide/using-component-harnesses如何做的说明,但我加了这一行:

loader = TestbedHarnessEnvironment.loader(fixture);

我开始得到错误:

TypeError: 无法读取 undefined 的属性 'nativeElement' at Function.loader (http://localhost:9876/karma_webpack/node_modules/@angular/cdk/fesm2015/testing/testbed.js:589:1) at http://localhost:9876/karma_webpack/src/app/maps/maps.component.spec.ts:55:40 at at http://localhost:9876/karma_webpack/node_modules/tslib/tslib.es6.js:74:1 at new ZoneAwarePromise (http://localhost:9876/karma_webpack/node_modules/zone.js/dist/zone-evergreen.js:960:1) at __awaiter (http://localhost:9876/karma_webpack/node_modules/tslib/tslib.es6.js:70:1) 在用户上下文中。(http://localhost:9876/karma_webpack/src/app/maps/maps.component.spec.ts:48:26) at ZoneDelegate.invoke (http://localhost:9876/karma_webpack/node_modules/zone.js/dist/zone-evergreen.js:364:1) at ProxyZoneSpec.push../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (http://localhost:9876/karma_webpack/node_modules/zone.js/dist/zone-testing.js:292:1) at ZoneDelegate.invoke (http://localhost:9876/karma_webpack/node_modules/zone.js/dist/zone-evergreen.js:363:1)

除了指出一些将要修复的错误(https://www.gitmemory.com/issue/angular/components/21632/764975917)之外,谷歌搜索没有任何帮助。

如何解决这个问题?或者如何单击MatRadoButton?我应该使用原生元素通过DOM模拟单击吗?

共有1个答案

祝宏放
2023-03-14

https://www.gitmemory.com/issue/angular/components/21632/764975917答案很好:

当在async beforeEach中创建线束加载器并且ts目标是ES2018时,单元测试失败。StackBlitz演示

这个问题有三种解决方案。

  1. 将 TestbedHarnessEnvironment.loader 的调用移至 it 函数(演示)。
  2. 在 beforeEach 中使用 waitForAsync 而不是异步函数(演示)。
  3. 将目标更改为 ES2016(演示)。

不过,要使用其中一个建议(使用waitForAsync而不是Async ),需要将Angular升级到v11。

 类似资料:
  • 我的配置如下: Apache Maven 3.3.3(7994120775791599e205a5524ec3e0dfe41d4a06;2015-04-22T14:57:37 03:00) 我使用Spring Tool Suite 3.7.1。发布(构建ID:201510041213)。 我做了关于Java、Maven和STS的所有设置,但是当我试图运行任何Maven命令时,STS会抛出这个异常,

  • 我有这个问题,知道吗?我正在添加洞迹 我的代码如下所示: 我的文件夹目录如下所示: 堆栈跟踪:

  • 使用spring配置文件,我们可以根据注释加载特定的bean。是否可以根据环境加载特定的配置类。实际上,config类是用特定的注释(如)注释的,它总是被加载。并要求可选地加载它。 谢谢

  • 问题内容: 我正在寻找一种在页面加载时自动“单击”项目的方法。 我尝试使用 但这似乎行不通吗?但是,当我进入Firebug的控制台并运行脚本时,它可以工作。 可以在加载时使用触发事件吗? 问题答案: 您尝试触发的点击处理程序很可能也通过附加了。可能发生的情况是您在附加处理程序之前触发了事件。解决方法是使用: 10ms的延迟将导致该函数在所有处理程序被调用后立即运行。

  • 这是我第一次用飞溅刮网站。我需要告诉spash点击一个按钮,以便其他元素加载到浏览器上。这是无限的。然后我希望飞溅返回超文本标记语言代码,这样我就可以用我的蜘蛛刮掉它。加载按钮没有href,所以我不能使用分页。因此,我试图写一个闪存脚本来做到这一点。但是当我用Splash运行脚本时,似乎“btn”部分在返回的超文本标记语言中没有任何作用(每次只返回第一页的超文本标记语言)。) 这是我写的Splas

  • 我想在与PRODUCTION域相同的范围内构建一个Lotus Notes TEST环境,并从PRODUCTION环境中获得names.nsf的单向副本。您有逐步参考的说明或指南吗?非常感谢。