问题标签 [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 回答
97 浏览

angular - 如何解决 Angular 单元测试中未定义 res.headers.get('Authorization') 的问题?

组件功能:

服务方式:

单元测试:

我能够通过名为 as 的服务方法的行,sendUserCredentials但在该服务方法内部有一行我从响应中获取标头,但我无法解决我遇到的问题。

此错误专门发生在组件函数的第 4 行。

0 投票
1 回答
364 浏览

angular - 为排序标题事件角材质创建模拟

我正在尝试为 matSortChange 函数编写单元测试。这会发出一个排序事件,我认为它只是一个具有活动属性和方向属性的对象。我的测试目前看起来像:

我得到的 TS 错误是

在查找 SortDirection 看起来像angular material docs时,我的 fakeSortEvent 对象似乎应该可以工作。如何创建模拟排序事件?

0 投票
1 回答
47 浏览

jasmine - 建议代码覆盖的角度单元测试

请建议对上述代码进行单元测试。

0 投票
1 回答
757 浏览

angular - 如何对浏览器平台库中的元标记进行 Angular 2 单元测试?

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

这是我为测试编写的内容,但它不起作用。

当我启动测试时,它会在控制台中给出一些错误:


src/app/app.component.spec.ts:27:47 中的错误 - 错误 TS2345:“我的关键字”类型的参数不可分配给“预期”类型的参数。

27 expect(meta.getTag('name=keywords')).toBe('我的关键字');

src/app/app.component.spec.ts:32:21 - 错误 TS2339:“HTMLMetaElement[]”类型上不存在属性“getTags”。

32 期望(metatags.getTags('httpEquiv=X-UA-Compatible').content).toBe('IE=edge');

src/app/app.component.spec.ts:33:21 - 错误 TS2339:“HTMLMetaElement[]”类型上不存在属性“getTags”。

33 期望(metatags.getTags('httpEquiv=X-UA-Compatible').title).toBe('123');

0 投票
0 回答
277 浏览

javascript - Angular 单元测试,“你需要包含一些实现 __karma__.start 方法的适配器!”

我正在为我的项目安装业力,我做了以下事情,但是当我运行“npm run test-karma”时,我得到了以下错误,

“您需要包含一些实现karma .start 方法的适配器!”

包.json,

Karma.conf.js,

测试.ts,

我是新来的。

0 投票
1 回答
282 浏览

angular - 如何获得价值 Angular 单元测试 CSSStyleDeclaration

我尝试测试 Angular 材料垫扩展面板打开。

所以,我用下面的代码测试。

控制台(console.log(first.style))下面的输出在“它”中

但是,失败的 expect(first.style.visibility).toEqual('visible') 与Expected '' 等于 'visible'。

怎么获得

0 投票
1 回答
34 浏览

angular - 如何在 Angular 中测试多个订阅?

在我的 Angular 单元测试中,我想myComponent.items$在调用 subject 时检查是否有 0 个结果myComponent.clearInput$.next()。在此之前,我想确保有一些记录。myComponent.items$可以由 填充myComponent.nameInput$.next("test")

不幸的是,两个订阅都是在两个主题都被调用后触发的,所以myComponent.items$总是 0。


这就是那些主题调用 items$ 的方式

0 投票
0 回答
797 浏览

azure-devops - Azure devops - 最小代码覆盖拉取请求

我有一个 Angular 9 项目,我试图在 Azure devops 中的拉取请求上获得最小的代码覆盖率,以符合文档。然而,最小的代码覆盖率不起作用,可能缺少一些步骤......

重现步骤:

  1. 创建一个新的 Angular 9 项目:“ng new DefaultWebsite”
  2. 创建构建管道并编辑业力和量角器配置符合 Microsoft“构建、测试和部署 JavaScript 和 Node.js 应用程序”文档
  3. 在我的项目的根目录中添加和“azurepipelines-coverage.yml”以启用拉取请求中的代码覆盖率检查符合 Microsoft“拉取请求的代码覆盖率”文档
  4. 在 de app.spec.ts 文件中禁用一些测试,因此代码覆盖率不再是 100%,现在是 77%。将 yml 文件中的最小代码覆盖率更改为 95%,因此无法编译拉取请求符合理论,它应该给出“覆盖状态检查失败”错误,符合 Microsoft 文档。

但是,当拉取请求启动时,“状态”部分下方会进行代码覆盖率检查。构建(使用单元和 e2e 测试)完成后,没有代码覆盖错误,我认为您可以在“状态”部分下方看到。

使用代码覆盖检查 拉取请求 拉取请求构建完成

当我查看构建时,会有测试结果和代码覆盖率结果。

构建测试结果 构建代码覆盖率结果

当我查看代码覆盖率结果时,我看到 75% 的行覆盖率应该是 90% 的最小值,符合 yml 文件。

业力配置文件

量角器配置文件:

azurepipelines-coverage.yml

Azure 构建管道步骤:

0 投票
0 回答
319 浏览

angular - 为什么 Karma 不只运行特定的组件测试?

我有一个 Angular 应用程序,其中有许多组件。但是现在我只想运行测试,login.component.ts所以我在我的test.ts文件中这样做了

但是,当我运行ng test它时,它会运行所有组件的测试文件,并在其中一个指令上出现错误,如下所示:

在此处输入图像描述

0 投票
1 回答
54 浏览

javascript - 如何在角度单元测试中对服务进行单元测试?

我的服务中有如下功能,

我的测试用例,

当我运行时它会抛出错误,

我知道它与 this.pollingServiceService.pollRequest( 这个函数有关,但我不知道如何解决它。谁能给我建议帮助。谢谢。