繁体   English   中英

我是否应该(静态地)对第三方代码进行类型检查(例如使用Flow)?

[英]Should I (statically) type-check Third-party codes (e.g. using Flow)?

我在编写第一个单元测试时特别有这个问题。 静态类型检查这些第三方代码似乎不正确,例如,Enzyme / React测试工具功能的返回值类型和测试框架的回调函数类型。

我只是以为第三方API就像(this)[ https://github.com/airbnb/enzyme/blob/master/docs/api/shallow.md#shallowwrapper-api]太长了,很可能是测试。

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

这里有两个方面:

  • 验证第三方库的完整性不是您的责任。 您不应该从事测试其他人的交付的业务。
  • 另一方面:编写良好的测试是探索此类第三方组件的好方法。

更重要的是:编写良好的测试套件可以说明您对该组件的期望。 可以自动执行的规范!

意思是:您可以保留这些测试,并在以后使用它们来验证该组件的更新版本是否仍按预期执行。

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

如果您问是否应该在专门测试第三方程序包的代码库中添加单元测试,不,我不会这样做。 他们可能会更新其程序包,而您的测试将失败-您对此无法控制(除非您决定永不更新)。

如果要确保单元测试具有测试,最好通过请求请求将单元测试添加到其代码库中。 否则,您应该只测试您的代码。

如果您想编写包含其他程序包的端到端测试,那很好。 但是我不会对它们的特定功能进行单元测试。 那属于他们的来源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM