【问题标题】:Typescript optional chaining testing branch count打字稿可选链接测试分支计数
【发布时间】:2023-02-25 10:44:26
【问题描述】:

当涉及到使用打字稿的可选链接时,我在理解分支覆盖范围时遇到了一些麻烦。

这是我的代码

type testingType = {
   b?: { a?: number };
};
 
export function example(input: testingType) {
   return input.b?.a;
}

这是测试(只是强制它通过以生成报告)

test('test', () => {
   example({});
   expect(1).toBe(1);
});

这是覆盖率报告截图(分支覆盖率 3/4)

我想弄清楚为什么总共有 4 个分支。 不应该有 2 个分支吗?

  • b定义
  • b未定义。

【问题讨论】:

  • 我猜那是因为还有 a 可以定义或未定义,所以 2 x 2 = 4?

标签: typescript jestjs babeljs ts-jest test-coverage


【解决方案1】:

有 3 个分支:

{b?: { a?: number }}

哪个是:

  • 空对象(b未定义):return input
  • b 已定义,a 未定义:return input.b(即{ b: {} }
  • b 定义和定义:return input.b.a 将是 { b: { a: SOME_NUMBER} }

【讨论】:

    猜你喜欢
    • 2022-12-20
    • 1970-01-01
    • 2023-03-07
    • 2020-05-22
    • 1970-01-01
    • 2022-12-22
    • 2019-07-29
    • 2022-01-23
    • 1970-01-01
    相关资源
    最近更新 更多