问题标签 [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 投票
1 回答
537 浏览

testing - Angular 2 beforeEachProviders 在测试中因 Injector 而失败

当我尝试传递InjectorbeforeEachProvidersin 测试时,我收到以下错误。

我使用的代码

什么不见​​了?我应该给提供者什么才能实例化它?

0 投票
2 回答
4074 浏览

angularjs - Angular 2 Http测试多个连接

任何人都可以帮助我在 Angular 2 中测试 Http 请求。我有一个从两个 http 请求中获取流的服务。如何在测试中模拟这种行为?

这是我的测试代码,我尝试使用连接数组,但收到一条错误消息,提示“失败:连接已解决”。我将连接的主体留空以避免暴露敏感数据。

0 投票
1 回答
222 浏览

jasmine - 使用 Jasmine 进行 Angular2 测试。如何加载依赖项正确?

我有非常简单的测试。有用。

我正在尝试加载相应的依赖项。但它不起作用:

为什么?

来自浏览器控制台的错误消息:

0 投票
1 回答
2388 浏览

angular - Angular2单元测试组件得到“没有DirectiveResolver的提供者”

我收到以下错误:

在尝试运行这个甚至没有的测试时expect(比实际到达那里更快地崩溃):

这是我的 karma.config.js:

这是我的test-setup.js

有谁知道为什么会发生这种情况或我应该做什么?

0 投票
1 回答
1876 浏览

html - 在 Angular 2 中测试 routerLink 指令

我正在尝试测试路由的工作。我将导航栏移动到一个单独的组件 - MdNavbar。那里基本上只有 html 和 css,RouteConfig 在其他组件中,MdNavbar 在那里注入。我想在单击链接时测试该路线的变化。在测试中,我正在寻找 Profile 链接并单击它。我预计路线会改变。这是我的测试代码 -

测试运行结果如下 -

而第二个——

有人可以给我一个提示,我到底做错了什么?

这是部分导航栏组件模板 -

补充: 感谢 Günter Zöchbauer 的回答,我设法为我找到了一个可行的解决方案。

0 投票
1 回答
206 浏览

javascript - 使用 ES5 进行 Angular 2 rc.1 测试

将 ES5 与 Angular 2 RC.1 模块一起使用,npm 包提供了*.umd.js运行 Angular 2 应用程序所需的内容。

但是,没有*.umd.js用于编写 Angular 2 测试的文件。

在模块系统之前,我通过包含angular2-all-testing.umd.dev.js. 现在 Angular 2 已经拆分为模块,我用什么来编写测试?

0 投票
2 回答
1059 浏览

sass - 如何使 karma 与 webpack、Angular2 和 SASS 项目一起工作?

我正在使用angular2-webpack-starter,并且我的样式表是 SASS。一切正常,但是当我尝试运行业力测试时,它失败了,给了我这个错误

我尝试安装karma-sass-preprocessorkarma-scss-preprocessor但似乎没有任何效果。我应该怎么办?

0 投票
1 回答
411 浏览

rxjs5 - 使用泛型可观察作为返回类型的扩展方法

rxjs:5.0.0-beta.2 打字稿:1.8 Angular2:beta-9

我正在尝试模拟一个 http 服务类,但在扩展类时遇到问题,如 angular 2 文档中所述。

似乎您无法覆盖返回类型化可观察对象的方法?我错过了什么?

如果返回类型为 T 但不是 则有效observable<T>

谢谢!

0 投票
3 回答
13874 浏览

unit-testing - Angular2组件:测试表单输入值变化

我有一个文本输入,我正在听变化。

我的组件.ts

我的组件.html

运行应用程序一切正常,但我想对其进行单元测试。

所以这就是我尝试过的

mycomponent.spec.ts

测试失败,因为.search()没有调用该方法。

我想我必须以value另一种方式设置测试以实现更改,但我真的不知道如何。

有人有想法吗?

0 投票
1 回答
707 浏览

unit-testing - .subscribe 之前的 Angular2 测试逻辑

我目前正在为我的一个组件编写单元测试。特别是我有login(): void功能。这是简化的逻辑:

我正在努力编写一个测试,showSpinnertrue调用userService.login.

这是我的测试:

这个测试失败了,因为.subscribe得到解决/立即运行(我尝试在我的组件中注释掉this.showSpinner = false,并且测试通过了)。

在我的userService模拟中,对于方法模拟,我有以下内容login

this.loginSpy = this.spy('login').andReturn(Observable.of(this));

this在哪里mockUserService

我有信心我正在嘲笑userService,特别是正确的login方法userService,因为我对该组件进行了其他测试,这些测试表现正确。

我也试过Observable.of(this).delay(1)从我的间谍那里回来,然后打电话给tick(1)我的测试。然而,这会导致不一致的行为,因为有时我的测试通过了,但其他时候我收到一条错误消息:

Error: 1 periodic timer(s) still in the queue.

如何测试前面的逻辑.subscribe()