问题标签 [angular-unit-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 投票
0 回答
2547 浏览

angular - Angular 6单元测试:无法绑定到因为它不是一个已知的属性&不是已知元素

我有一个包含多个组件和模块的角度应用程序。在这里,我试图简化和最小化结构以帮助理解问题。
应用结构

甜甜圈-card.component.html

donut-card.component.spec.ts

甜甜圈-card.component.ts

核心模块.ts

app.module.ts

由于整个应用程序中的属性绑定问题,单元测试失败。我已经提到了相当少的解决方案和堆栈溢出可用的检查,但到目前为止对我没有任何帮助。

0 投票
1 回答
5282 浏览

angular - 带有setTimeOut的Angular 6单元测试ngOnInit不起作用

我在 ngOnInit 函数中有一个带有 setTimeOut 函数的组件。要为此编写单元测试用例,我使用 tick 和 fakeAsync 来快进 setTimeOut。但是,它没有被执行,这反过来又没有调用其他函数 closeAlert()。

组件代码:

规格文件:

html代码:

0 投票
1 回答
705 浏览

angular - Jasmine 全局变量初始化

我正在使用 jasmine 编写 Angular 组件单元测试。我们有静态变量的类,这些变量在应用程序加载时初始化。目前,我们正在使用这些变量的组件的单元测试的 beforeAll 中初始化这些静态变量。

在所有单元测试文件中调用相同的初始化函数似乎是多余的。

有什么方法可以在茉莉花单元测试开始期间全局初始化这些静态变量,这些变量可用于所有单元测试套件?

目前我们正在像这样初始化这些静态变量:

0 投票
1 回答
1084 浏览

sonarqube - 代码覆盖率未在 Sonar Qube 中上传

我在 Angular 4 项目中有覆盖文件夹,我必须将所有 ts 代码问题、代码覆盖率上传到 sonarQube。除了代码覆盖率一切正常。以下是我的 sonar-project.properties

0 投票
1 回答
2541 浏览

angular - 如何测试使用 Angular 6+ 调用 observable 的拦截器?

我已经构建了一个HttpInterceptor紧跟 Angular 文档中的那个。

但是,我需要将异步调用作为拦截器的一部分。我用代码的简化版本(但语义相同)创建了一个StackBlitz 。

拦截器看起来像:

这很简单:

  • 检查我们调用的 URL 是否需要我们的令牌 ( req.url.startsWith())
  • 如果是,则获取我们的令牌并将其添加为标头
  • 如果没有,只需继续管道

有一个名为的ConfigurationService简单string属性apiUrlSessionService有一个几乎同样简单的名为的方法,getToken()它返回一个Promise<string>.

代码按预期工作: 带有授权标头的响应

但是,我很难测试这个......

我的实际测试很简单:

我已经正确地嘲笑了getToken()and apiUrl,所以apiUrl='bar'getToken()返回Promise.resolve('foobar')。问题似乎只是在通过addAuth()路径时。如果我测试反例,它会起作用:

0 投票
1 回答
138 浏览

angular - 可观察的单元测试在它应该失败时通过

rxjs 和 angular 的新手,尝试为一个简单的 rxjs 可观察的成功/错误场景编写一些基本的单元测试:

服务方式:

测试:

但是,如果我将期望语句更改为:

单元测试仍然通过。

如果我注销错误,我会看到:

0 投票
1 回答
859 浏览

angular - Angular 单元测试用例在使用组件 ngOnInit 时失败

我正在使用 angular 7 并且在使用 and 时无法运行单元component.ngOnInit()测试用例fixture.detectchanges()。如果删除component.ngOnInit()然后fixture.detectchanges()测试用例通过但我想检测间谍后的变化。

错误信息: TypeError: Cannot convert undefined or null to object at Function.keys (<anonymous>) at SidenavComponent../src/app/components/sidenav/sidenav.component.ts.SidenavComponent.buildMenu (http://localhost:9876/src/app/components/sidenav/sidenav.component.ts?:93:19) at SidenavComponent../src/app/components/sidenav/sidenav.component.ts.SidenavComponent.ngOnInit (http://localhost:9876/src/app/components/sidenav/sidenav.component.ts?:76:28) at UserContext.<anonymous> (http://localhost:9876/src/app/components/sidenav/sidenav.component.spec.ts?:103:15)

0 投票
1 回答
363 浏览

angular - 对 ngOnInit 中的订阅进行单元测试不起作用

我已经订阅了 ngOnInit 上的 observable,现在我正在尝试为此编写测试,但这似乎不起作用。

这是我正在尝试测试的课程

这是我的单元测试

此测试失败并出现错误Expected spy updates$ to have been called.

谁能帮我解决这里的问题。

0 投票
1 回答
2321 浏览

angular - 错误为无法读取属性“订阅”。在单元测试时以 7 角激活路线

我收到错误,因为在单元测试时无法读取角度 7 中激活路由的未定义属性“订阅”。我已经以多种方式尝试过,请帮助。

Observer.of 不适合我,因为我有 rx.js 版本 6.3.3

这是我的组件文件 ChildComponent.ts

这是我的子组件单元测试用例的单元测试文件

0 投票
1 回答
200 浏览

angular - 如何测试路由器订阅

我正在订阅 ngOnInit 上的路由。

除了我不确定如何测试的路由之外,我能够测试组件中的所有其他方法。我也没有看到此类问题的任何确切答案。

任何人都可以帮助为这篇文章编写单元测试。