打字稿项目中的单元测试目标

时间:2019-04-16 01:46:39

标签: typescript unit-testing

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

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

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

1 个答案:

答案 0 :(得分:-1)

  

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

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

  

大多数时候,我们应该测试一下如果用户   将错误的参数传递给函数。为此,我们   应该对内置的js代码进行测试

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

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

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();
});