【问题标题】:Angular: How to Unit Test Public Members which are Only used as Input in HTMLAngular:如何对仅在 HTML 中用作输入的公共成员进行单元测试
【发布时间】:2020-06-29 18:56:43
【问题描述】:

Angular ng test --code-coverage 要求我对公共变量进行单元测试。这些变量在 html 中严格用作直接输入。如何进行单元测试?

变量被放置到其他输入区域组件中:

<ctrl-grid 
  [gridData]="agencyAssociatedList" 
  [pageSizes]="pageSizes" 
  [gridOptions]="gridOptions"
  [(state)]="gridState"
  [buttonCount]="buttonCount"
  [previousNext]="previousNext"
  [loadDataWithState]="exportData"
  >

【问题讨论】:

  • 嘿@marksmith527。欢迎来到 Stackoverflow :) 你能确认你是否打开了 sourceMap 吗?
  • 一般来说,当 sourceMap 关闭时会出现这些问题
  • 其实sourceMap降低了测试速度。因此,我们通常主要在准备样板进行测试时关闭以获得更好的速度
  • 你能试试.. ng test --sourceMap=true --code-coverage=true 吗?
  • 我们使用这个,ng test --source-map=false --code-coverage

标签: angular typescript karma-jasmine angular8


【解决方案1】:

您需要打开 sourceMaps 以启用对代码的全面覆盖。

那么,什么是 sourceMap 呢?

源映射是一个 JSON 文件,其中包含将转译后的代码映射回原始源所需的所有信息

由于 Angular 将 TS 转译为 JS,当启用 sourceMaps 时,它可以映射实际的 TS 代码块,该代码块被转译的 JS 覆盖。

当 sourceMap 关闭时,不仅公共变量,有时分支也没有完全覆盖。

【讨论】:

    猜你喜欢
    • 2015-11-18
    • 2016-01-01
    • 2020-02-29
    • 2019-11-21
    • 2019-11-02
    • 2021-10-07
    • 1970-01-01
    • 2014-01-23
    • 2010-11-04
    相关资源
    最近更新 更多