【问题标题】:unit test target in typescript project打字稿项目中的单元测试目标
【发布时间】:2019-04-16 01:46:38
【问题描述】:

我发现在许多打字稿项目中,单元测试的目标是ts 源代码,而不是从ts 源代码构建的js 代码。

大多数时候,我们应该测试如果用户将错误的参数传递给函数会发生什么。为此,我们应该对构建的js 代码进行测试,因为IDE 已经对ts 源代码进行了类型断言,我们没有机会传入错误的参数。

最后,我的问题是,是否有官方指南或单元测试的最佳实践?

【问题讨论】:

    标签: typescript unit-testing


    【解决方案1】:

    是否有官方指南或单元测试的最佳实践?

    这个问题可能超出了本网站的范围。

    大多数时候,我们应该测试如果用户 将错误的参数传递给函数。为此,我们 应该在构建的 js 代码上进行测试

    首先,我不同意这个前提。如果用户传入错误的参数,您唯一需要担心会发生什么的地方是模块的边界(用户将传入输入的地方)。任何内部类和函数都不必担心这个。

    其次,如果你想测试如果用户传入错误的参数会发生什么,你仍然可以在 TypeScript 中使用 any 类型进行测试。例如,如果我有一个函数:

    function getStringLength(str: string): number {
      if (typeof str !== 'string') {
        return undefined;
      }
      return x.length;
    }
    

    然后我可以测试它:

    it('Should throw an error on a non-string type', () => {
      expect(getStringLength(1 as any)).toBeUndefined();
    });
    

    【讨论】:

      猜你喜欢
      • 2011-05-03
      • 2019-04-05
      • 2018-09-06
      • 1970-01-01
      • 2019-04-14
      • 1970-01-01
      • 1970-01-01
      • 2021-10-20
      • 1970-01-01
      相关资源
      最近更新 更多