问题标签 [angular2-testing]

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 投票
2 回答
1532 浏览

angular - 使用 HTTP 请求测试 Angular 2.0.0 组件

我有以下 Angular 2.0.0 组件:

我将如何测试该ngOnInit()功能?

我不想包括到目前为止我尝试过的测试,因为我怀疑我偏离了正确的轨道,我不想让答案产生偏见。

0 投票
1 回答
3584 浏览

angular - Angular 2 - 具有依赖关系的 angular-cli 管道测试

我正在尝试对相对孤立的Pipe. 我使用的是最新版本angular-cli(带有@angular2.0.0)。

管道代码是:

规范代码是:

理智测试通过,但真正的测试失败并出现错误:

我确定这是我错过的一些配置,但由于某种原因,DataTablePipe它没有导入到测试模块中......

有任何想法吗?

0 投票
1 回答
723 浏览

angular - RouteLink 测试 angular2

我正在测试一个使用 RouteLink 指令的组件,如下所示:

我尝试获取<a>标签并单击它以获取当前路径,但问题是当前路径始终为 '' ,什么都没有 :( 这是错误:

任何想法 ?

0 投票
1 回答
3058 浏览

angular - Angular2 - 测试注入的私有服务方法已被调用

首先,我知道我不应该测试私有方法,但是我觉得有时我应该测试是否基于某种逻辑调用了私有方法。

我正在围绕 angular 2 http 服务构建一个包装服务,这样我就可以进行全局错误处理,而无需将代码写入每个 http 请求。

该类的一个小样本是这样的:

如果我想测试 get 方法并以错误响应模拟响应,以便触发 catch,我无法测试是否调用了 error.dispatch 方法,因为这是私有的。我不能窥探私有方法。

您可能会争辩说,我实际上只是在测试“catch”是否被触发,如果确实如此,那么它内部的方法显然会触发,但这只是在测试 http 服务本身。如果'catch'被触发,我想确保error.dispatch已作为调用添加,如果由于某种原因它被另一个开发人员删除,则会失败。也许这是一种不好的测试方式?我愿意接受其他建议。

我可以像这样模拟私人课程:

但是 ApiService 类的蓝图保持不变,现在的 FakeError 服务仍然是私有的。在 Java 中,您可以自己创建实例并将其注入,因为您拥有它,您可以访问它。我想我正在尝试在 jasmine/typescript/angular2 中找到一种方法来做到这一点?

0 投票
3 回答
27437 浏览

javascript - Angular 2 最终发布路由器单元测试

如何使用 karma 和 jasmine 在 Angular 2.0.0 版中对路由器进行单元测试?

这是我的旧单元测试在 2.0.0-beta.14 版本中的样子

0 投票
1 回答
2476 浏览

unit-testing - Angular 2.0.1 创建了具有不同配置的平台。请先销毁

我正在尝试在带有 Jasmine 的 Angular 2 组件上运行 Angular 2 单元测试(我没有使用 Karma,但是......只是对我的代码进行 webpacking,然后在默认的 Jasmine SpecRunner.html 中运行测试)。

当我运行我的代码时,我收到错误消息:“已创建具有不同配置的平台。请先销毁它。” 一整天都在敲我的头。阅读我能找到的关于 StackOverflow 的每一篇文章,但我仍然卡住了。有什么建议么?

这是我正在尝试测试的组件...

0 投票
1 回答
1576 浏览

unit-testing - TypeError:升级到 Angular 2.0 final 后无法读取 null 的属性“注入器”

从 Angular 2 RC5 升级到 2.0 Final 后,我在运行测试时看到以下错误。我不确定问题是什么。

这是我的一项测试的示例:

有关演示此问题的拉取请求,请参阅 GitHub:https ://github.com/mraible/ng2-demo/pull/4

0 投票
2 回答
3847 浏览

unit-testing - Angular 2 CLI Jasmine 单元测试在使用 beforeAll 而不是 beforeEach 时失败

我使用 NG-CLI (beta.15) 创建了一个新项目,并修改了app.component.spec将其更改beforeEach为 abeforeAll并导致测试失败并出现以下错误:

失败:无法创建组件 AppComponent,因为它没有导入到测试模块中!

我不明白这个错误是什么意思,当然为什么我会首先得到它。

这是修改后的规格:

然后我将规范修改为此,前两个测试通过,第三个测试失败并显示以下消息:

失败:尝试使用被破坏的视图:detectChanges

我不明白为什么会有任何失败。

0 投票
1 回答
5203 浏览

angular - 如何模拟 angular2 平台浏览器标题组件以进行测试

我正在用 Jasmine 为 Angular 2 组件编写单元测试。当我的组件被实例化时,我想测试我的文档标题是否设置为特定值。

这是我的组件

这是我为测试而编写的,但它不起作用。titleService.getTitle()给我 Karma 调试运行器页面标题。

业力输出是:

错误:预期 'Karma DEBUG RUNNER' 为 'Account'。

0 投票
1 回答
1171 浏览

angular - 使用 angular2-material 组件在 angular2.0 中运行 ng test 时测试用例失败

我在我的应用程序中使用 angular2.0

我安装了 angular2-material 组件并导入了所需的模块

我尝试为我的一个组件编写测试用例

//about.component.html

//关于.component.ts

//关于.component.spec.ts

//package.json

当我这样做时ng test,我得到:

有没有办法解决这个问题?