问题标签 [angular-test]

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

angular - 了解 Angular 的 fakeBackendProvider、MockBackEnd 和 MockConnection

我在测试我的 Angular 应用程序时试图模拟一些 http 请求。我正在通过使用 Angular 的 MockBackEnd 和 MockConnection 来关注互联网上使用 fakeBackendProvider 的流行示例。尽管我很好地理解了代码,但我想更详细地了解这些提供程序的内部工作。

他们如何拦截http请求?例如,当我的代码调用 http.get() 时,谁迷上了什么,谁替换了什么,以及如何?

任何参考资料都会非常有帮助。

0 投票
0 回答
431 浏览

angular - angular-cli :运行测试套件运行所有套件而不是一个尖头套件

我处于需要为不同目的运行不同的测试用例的情况。就像冒烟测试一样,我正在运行 2 个测试用例,而对于回归,我需要运行 30 个测试用例。我已经suites在我的定义protractor.conf.js和我从ng命令调用套件

在 Angular cling e2e -- --suite=smoke中假设只运行一个测试用例,但实际上它运行我项目中的所有测试用例。

不知道为什么它运行所有的测试用例而不是只运行一个测试用例。

我已经经历了ng --suite 问题,看起来它在 angular cli 中是一个真正的问题。

0 投票
0 回答
250 浏览

angular - 如何测试来自返回多个可观察对象的 http 服务的数据

我有一个数据服务,它从服务器获取数据并发出多个请求,然后返回一个可观察的数组。我想测试数据。

我尝试做的是在我发送的包含两个可观察对象的模拟响应中,我不知道这是否是测试数据的正确方法。

但是测试失败了,尤其是异步测试块中的最后三个测试

0 投票
0 回答
61 浏览

angular - 如何在使用 jasmine 的 Angular 2 测试中为每个测试用例为同一提供者提供唯一的存根?

假设我在同一个描述块中有两个测试用例,需要使用相同的服务,但每个测试用例都必须提供不同的服务存根?下面的示例将按预期为两个测试用例提供 serviceStub1,但我需要找到一种方法为第二个用例提供 serviceStub2。我已经花了很多时间在这上面,但到目前为止我迷路了。任何帮助将不胜感激,谢谢。

0 投票
1 回答
681 浏览

angular - angular 4 单元测试输入文本框(行为)点击/聚焦

我正在尝试对我的组件进行单元测试,并且在一个测试中我想关注/单击输入文本框。这是因为当我们单击输入文本时,它会打开一个模式,我想确保该操作发生。

这在 e2e 测试中可能是可能的,但由于需要,希望在单元测试中实现它。

HTML 模板

组件.spec.ts

假设测试台模块配置没问题。

很抱歉,我无法分享整个代码。

0 投票
2 回答
7694 浏览

angular - Angular CLI - 如何在 src 文件夹之外获取 .spec.ts 文件?

我有一个 Angular CLI 项目,它NgModule位于/src文件夹之外(最终这个 NgModule 将被打包为一个 npm 模块,但现在我只是把它放在外面/src)。

我正在尝试为此 NgModule 编写单元测试,但ng test似乎没有拾取.spec.ts文件夹之外的/src文件。

我试过改变路径/src/test.ts

但我收到一个错误:Module build failed: Error: /absolute/path/to/file.spec.ts is not part of the compilation. Please make sure it is in your tsconfig via the 'files' or 'include' property.

我还尝试在以下include属性中添加我的 NgModule 的路径tsconfig.spec.json

但没有成功。有任何想法吗?

0 投票
1 回答
9016 浏览

typescript - 期望的对象是一种 ScalarObservable,但是是 Observable

在我的 Angular 应用程序中,我通过以下方式使用 Observables:

我对它进行了单元测试:

它工作得很好。

但是,如果我尝试使用以下方法向我的方法添加默认错误处理逻辑getItem()catch

它仍然可以正常工作,但现在测试失败了,说:

预期的对象是一种 ScalarObservable,但它是 Observable({ _isScalar: false, source: ScalarObservable({ _isScalar: true, value: 'mock', scheduler: null }), operator: CatchOperator({ selector: Function, caught: }) })。

这是什么意思?为什么会这样?我该如何解决这个问题?

0 投票
1 回答
1287 浏览

angular - 更改 Angular4 单元测试的模拟激活路由的值

我的 Angular 组件依赖于使用解析器服务设置数据参数的激活路由。对于我的单元测试,我喜欢模拟它,如下所示:

activatedRouteStub = { data: { subscribe: (fn: (value: Data) => void) => fn({ someObject: SomeObjectMock // hard coded JSON value }), } }; TestBed.configureTestingModule({ declarations: [SomeComponent], providers: [ { provide: ActivatedRoute, useValue: activatedRouteStub } ] }); route = fixture.debugElement.injector.get(ActivatedRoute);// where route is in an instance of ActivatedRoute that is injected into SomeComponent as a dependency

这对于依赖于activatedRoute 的这种行为的初始测试集很有效。但是现在,我需要更改实际返回的内容,基本上,我需要使用修改后的 SomeObjectMock 并将其设置为 someObject。

而且我对如何做到这一点缺乏想法,我尝试过以下操作:

route = { data: { subscribe: (fn: (value: Data) => void) => fn({ someObject: SomeObjectMock // hard coded JSON value }), } };

以前,当我对一个简单的服务进行存根时,这已经奏效了,更改方法的定义以返回不同的值是相当微不足道的。

任何建议/指针?

0 投票
3 回答
13510 浏览

angular - Test pipe with dependencies on services

I have a pipe that sanatises HTML as below:

I want to test it as below:

The DomSanatizer is an abstract class which is autowired by typescript by passing it into a constructor:

Currently I get the typescript errror:

Cannot create an instance of the abstract class 'DomSanitizer'.

Does anyone know what typescript does when instantiating dependencies passed into a constructor in Angular? Or what the way to test something like this is?

0 投票
0 回答
190 浏览

angular - 如何在 Visual Studio Code 中使用 jasmine-karma 编写 routerLink 测试用例

我只想测试routeLink='/home'App.Component.html 页面中是否可用。在 Udemy 的某个地方,我看到了一个关于如何测试 routerLink 的视频。我遵循了相同的步骤,但我不知道这是 Visual Studio Code 的问题还是角度测试中的其他地方的问题。

注意:请务必阅读代码中的注释

测试如下,

properties属性存在,如此处所示,

在此处输入图像描述

但实际上我得到这样的错误,

在此处输入图像描述

有什么问题?