问题标签 [testbed]

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 回答
15780 浏览

angular - 角度单元测试:TypeError:无法读取未定义的属性“根”

我正在我的 Angular 应用程序下进行单元测试。

我的 Angular 版本是 4.0.0。

我的组件如下所示:

component.ts

component.html

如您所见,我没有使用routeLink.

在我的测试文件配置中,我已经这样做了:

component.spec.ts

尽管我已经导入NO_ERRORS_SCHEMA并使用了 a mockRouter,但路由似乎仍然出现此错误:

从日志的最后一行指向 53:27 行,这正是:

所以它似乎无法创建fixture

有任何想法吗?

0 投票
1 回答
134 浏览

angular - MockBackend 我很困惑

所以我尝试测试包含服务的组件方法。我将向您展示一个示例,说明我为测试我的搜索方法所做的工作。

这是我包含搜索功能的组件:

这是我的服务

这是我正在做的测试,以检查我的服务是否有效(声明):

这是实际的测试

测试成功运行。我为服务函数设置什么参数并不重要,它仍然返回模拟数据。这就是为什么我很困惑。我以为我为服务提供了模拟数据,如果我使用错误的参数进行搜索,服务将不会返回任何内容,但事实并非如此。如果我做错了,有人可以解释一下吗?此外,即使从我的组件执行搜索方法,服务仍然会得到相同的结果。我如何真正理解测试是否正常。

0 投票
3 回答
3958 浏览

angular - angular 5 testing - 全局配置测试平台

我想在 angular 5 的 angular-cli@1.50 项目中为所有测试套件导入某些模块,例如 ngrx Store、ngx translate 或 httpClientModule。

在生成的 test.ts 我添加了一个 test.configureTestingModule

仍然在 user.servive.spec.ts 它说没有商店的提供者。

user.service.spec.ts

user.service.spec 中的 Test.configureTestingModule 是否“覆盖”了 test.ts 中的那个?

如果是这样,如何在全局级别配置 TestBed 以避免导入重复的模块?

谢谢!

0 投票
1 回答
6189 浏览

angular - 覆盖Angular TestBed中另一个模块中的组件

我正在编写 TestBed 单元测试。

有某个组件,它是被测组件的子组件。该子组件在测试运行时会导致错误。该子组件与测试本身无关;它只是造成问题。

我想用一个假人替换它,或者阻止它被添加。

有问题的组件来自被测组件模块以外的模块

我试图制作一个存根/虚拟对象:

这是我的beforeEach

我试图覆盖组件模板,以防止错误:

我知道NO_ERRORS_SCHEMA,但它没有帮助。

我也在尝试overrideModule,但没有成功:

所以,问题是:是否可以覆盖ProblematicComponent(在模块之外的模块中ComponentUnderTest

0 投票
9 回答
14205 浏览

angular - Angular 4 单元测试(TestBed)非常慢

我有一些使用 Angular TestBed 的单元测试。即使测试非常简单,它们的运行速度也非常慢(平均每秒 1 个测试资产)。
即使在重新阅读 Angular 文档后,我也找不到性能如此糟糕的原因。

不使用 TestBed 的独立测试在几分之一秒内运行。

单元测试

目标组件(带模板)

业力配置

0 投票
3 回答
30712 浏览

angular - Angular 4 - 失败:无法解析 ActivatedRoute 的所有参数:(?, ?, ?, ?, ?, ?, ?, ?)

我已参考以下链接来获得答案,但我找不到适合我的方案的任何有效解决方案。 错误:(SystemJS)无法解析ActivatedRoute的所有参数:(?,?,?,?,?,?,?,?)

因此,我一直在尝试从提供程序中删除激活的路由,但测试台仍然没有通过。表明

错误:ActivatedRoute 没有提供者!

所以这是我的代码,我想在使用Jasmine 的 Angular 应用程序中运行我的测试台。

获取错误

在此处输入图像描述

0 投票
2 回答
4578 浏览

angular - Angular 4 测试 - 抛出 [object ErrorEvent]

我正在为我的角度应用程序完成测试台。但是 karma-jasmine 测试有问题,会报错

[对象错误事件] 抛出

我更新了 node_modules 作为我在以下链接中找到的解决方案 如何在我的 Karma/Jasmine 测试中调试“[object ErrorEvent] throwed”错误?

但是现在随机抛出错误,有时测试床完成时没有任何错误,有时会触发错误。有什么建议可以永久避免吗?

PS - 如果您需要更多资源,请在评论中告诉我。谢谢!

SomeComponent.spec.ts

0 投票
1 回答
1530 浏览

unit-testing - debugElement 在我的 angular5 测试中返回 null

我希望使用angular.io doc中描述的主机组件来测试 anguar5 组件。

但是我的测试一直失败,因为

事实上,当我记录我的 fixture.debugElement 时,它返回 null。

我的测试代码是:

0 投票
5 回答
38426 浏览

testing - 如何仅针对一项测试覆盖 Angular 5 中的 Provider?

在我的一个单元测试文件中,我必须用不同的模拟模拟多次相同的服务。

我看到函数overrideProvider存在,但我没有设法在测试中使用它。当我在“它”中使用它时,提供者不会改变。我没有找到调用此函数的示例。你能解释一下如何正确使用它吗?还是您有其他方法可以做到这一点?

0 投票
2 回答
6256 浏览

angular - TypeError: undefined is not a constructor (评估 'this.service.getDat().subscribe')

我正在开发一个 Angular 4 应用程序,编写单元案例,我面临以下问题。

组件.ts

组件.spec.ts

更新了模拟服务文件的代码。你能帮我一个人让它工作吗?使用模拟服务和测试床框架。你能请人帮帮我吗…………………………………………………………………………………… ..................................................... ..................................................... ..................................................... ..................................................... ..................................................... ...................................................