我(静态)类型检查第三方代码(例如使用Flow)吗?

时间:2017-05-11 03:20:32

标签: javascript unit-testing types tdd typechecking

在我写第一次单元测试时,我特别提出了这个问题。静态类型检查这些第三方代码似乎没有问题,例如Enzyme / React test utils函数和测试框架的回调函数类型的返回值类型。

我只是认为第三方API就像(这个)[https://github.com/airbnb/enzyme/blob/master/docs/api/shallow.md#shallowwrapper-api]太长而且很可能会被测试。

编辑:澄清说当我说类型检查时,我的意思是静态类型检查,如Flow,而不是通过单元测试。

2 个答案:

答案 0 :(得分:0)

这里有两面:

  • 您无需验证第三方库的完整性。你不应该开始测试其他人的交付。
  • 另一方面:精心编写的测试是探索这样的第三方组件的好方法。

更重要的是:一套精心编写的测试表示了您对该组件的期望。可以自动执行的规范!

含义:您可以保留此类测试并使用它们稍后验证该组件的较新版本是否仍然按照您的预期执行。

换句话说:你应该平衡这两点;例如,将测试限制为您自己的代码使用的重要功能。

答案 1 :(得分:0)

如果你问你是否应该在你的代码库中添加单元测试来专门测试第三方软件包,不,我不会这样做。他们可以更新他们的包,你的测试会失败 - 你无法控制它(除非你决定永远不更新)。

如果你想确保它有测试,你最好通过拉取请求将单元测试添加到他们的代码库中。否则,您应该只测试您的代码。

如果你想编写包含其他软件包的端到端测试,那很好。但我不会为他们单独测试他们的具体功能。这属于他们的来源。