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

angular - 使用服务中的 observables 测试错误案例

假设我有一个订阅服务功能的组件:

subscribe 调用将两个匿名函数作为参数,我设法为 data 函数设置了一个工作单元测试,但 Karma 不会接受错误的覆盖。

在此处输入图像描述

我试过监视 console.error 函数,抛出一个错误,然后期望间谍被调用,但这并没有完全做到。

我的单元测试:

测试此类匿名函数的最佳实践是什么?确保测试覆盖率的最低要求是什么?

0 投票
1 回答
323 浏览

angular - Angular 2 测试设置

我正在尝试使用以下设置测试 Angular 2 组件:

...但是我在控制台中不断收到以下错误,并且由于缺少信息性错误消息,我不知道我的设置有什么问题:

0 投票
1 回答
1092 浏览

unit-testing - Angular 2 (Mock Ionic2) -- 没有 App 的提供者

我正在尝试spec.ts为我的应用程序创建一个。可悲的是,这是使用来自ionic-angular. 现在,当我尝试配置模块时,我需要为其提供 LoadingController(因为它位于模块的构造函数中)。

我目前遇到的问题是 LoadingController 想要提供一个App对象/实例。(_app: App参数)

我很绝望,所以我问离子自己。github #8539

但是他们结束了我的问题,因为这是一个问题,而不是一个问题,尽管我在意识到他们没有回应的问题上遇到了问题。如果这是不可能的/没人知道怎么做,那将是一种耻辱,因为它是一个非常酷的功能,它不仅影响 LoadingController,而且 AlertController 和 ToastController 也受此影响。

我的测试台配置 atm:

和 EventsPage 构造函数:

编辑:LoadingController 的使用

这将导致这个 loadingspinner (使用不同的文本)

离子的加载

0 投票
1 回答
6535 浏览

jquery - Angular 2 和 jQuery - 如何测试?

我正在为我的 Angular 2 项目使用 Angular-CLI(webpack 版本),并且我还需要使用 jQuery(遗憾的是。在我的情况下,它是 Semantic-UI 的依赖项,我正在使用它来处理菜单下拉菜单)。

我使用它的方式:

然后在数组中列出它angular-cli.json的文件:scripts

因此它被包含在捆绑文件中,并且该文件自动用于根 html 文件:

<script type="text/javascript" src="scripts.bundle.js">

然后declare var $: any;在我需要它的文件中,它运行良好。

但是,测试存在问题ng test,因为 Karma 会抛出错误$ is not defined

0 投票
1 回答
20784 浏览

angular - 在组件中模拟服务 - 模拟被忽略

这次我试图模拟一个服务(执行 http 调用)来测试一个组件。

文档(2.0.0 版)说明您应该模拟该服务。使用相同的TestBed配置:

当我运行测试时,我得到:

这确实由实际服务使用,但不是由模拟。所以由于某种原因,没有注入或使用模拟。

有什么建议吗?谢谢!

0 投票
0 回答
1264 浏览

javascript - karma-test-shim.js 调用 TestBed.initTestEnvironment,但没有效果。TestBed 必须再次初始化

我目前正在尝试使用 Angular2 final 和 karma + jasmine 进行单元测试。

我有以下问题: TypeError: Cannot read property 'injector' of null如果不添加:TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()) .configureTestingModule({ declarations: [], providers: [Stuff], imports: [Stuff] });

给我的测试。

但是我只能调用initTestEnvironmentandconfigureTestingModule一次,因此不可能进行超过 1 个测试。而且我想阻止进行初始化测试。

这是我的 karma-test-shim.js

我认为在测试垫片中调用 initTestEnvironment 就足够了。我很惊讶我在 karma-test-shim.js 中的调用似乎没有效果。

package.json 和代码在一个相关的问题中:AsyncTestCompleter Browserify Angular2 HTTP Mock Test

非常感谢你的帮助。

0 投票
2 回答
52038 浏览

javascript - spyOn 找不到用于监视 start() 的对象

我正在使用 angular-cli 测试框架。

在我的组件中,我使用了“ng2-slim-loading-bar”节点模块。

现在,当我测试此组件时,我已将 spyOn 此服务应用为:

但它不工作。

它抛出以下错误:

spyOn 找不到用于监视 start() 的对象

0 投票
2 回答
18436 浏览

angular - Angular2 测试没有 LocationStrategy 的提供者

我正在尝试为组件编写测试,但我总是收到错误消息:“错误:./ExpenseOverviewComponent 类 ExpenseOverviewComponent 中的错误 - 内联模板:41:8 原因:没有位置策略的提供者!”

被测组件如下:

有没有人看到问题?我正在与 webpack 捆绑。

0 投票
2 回答
36146 浏览

angular - Angular 2 测试 - 异步函数调用 - 何时使用

在 Angular 2 中进行测试时,何时使用TestBed中的异步功能?

你什么时候用这个?

你什么时候用这个?

任何人都可以启发我吗?

0 投票
1 回答
7663 浏览

unit-testing - 角度 2 单元测试无法找到 debugElement

我正在尝试在我的组件上运行单元测试,这是我的路由器的输出。我已经对组件使用的路由器和服务进行了存根处理,我正在尝试使用 fixture.debugElement 来拉取元素以确认测试是否正常工作。但是,这始终返回为 NULL。

测试

存根路由器