伊斯坦布尔代码覆盖率-如果未采用路径

时间:2019-07-24 06:18:04

标签: javascript code-coverage istanbul

以下是用于查找所附伊斯坦布尔报道报告的功能。

export function getControlFromId(controlId, ancestorControl) {
  if (!(controlId && ancestorControl)) {
    return undefined;
  }
  if (controlId === ancestorControl.id) {
    return ancestorControl;
  }

  if (ancestorControl.controls) {
    for (const control of ancestorControl.controls) {
      const result = getControlFromId(controlId, control);
      if (result) {
        return result;
      }
    }
  }
  return undefined;
}

Istanbul coverage report

问题:为什么说不采用if-path?该图像清楚地显示了if循环中的行。

样本测试数据:

const ancestorControl = {
        name: 'form',
        controls: [
          {
            name: 'Section',
            id: 1,
          },
        ],
      };

1 个答案:

答案 0 :(得分:0)

据我了解,这表明您的if条件已部分执行,这意味着您正在测试ancestorControl.controls可用的正向流程。

您可能会缺少ancestorControl.controls不可用的测试用例。