单元测试的替代方案有哪些?
我上大学的时候,有个讲师不喜欢单元测试。他是一位在 IBM 工作的老者,讲授大型机相关课程。他总是说,过度吹捧单元测试只会让代码量翻倍,对代码的安全性却毫无益处。
2009 年,我接手了我的第一个大项目——一个 HTTP API。当时我所在的公司(成立于 2001 年)没有人写过任何单元测试。他们拥有庞大的 C/C++ 和 PHP 代码库。他们做了集成测试,但我接手的项目是第一个使用单元测试的项目。
我在大学时就听说过这个,想让我的第一个项目从一开始就看起来很棒。所以我为每个项目都写了大量单元测试class
,第一个版本发布后,测试量大约有200个。我努力达到那个著名的100%覆盖率。仅仅几个月后,API的架构就发生了变化,项目组的新人不得不重写100多个测试。
在项目的整个生命周期中,单元测试并没有阻止任何重大错误,只是修复了我在测试代码时想到的一些问题,但它们极大地拖慢了开发进度。此外,它们还强制代码遵循一些风格,而这些风格主要是为了方便编写测试,而不是为了最终的应用程序。
那么你对此有什么看法?我的单元测试做错了吗?还有其他选择吗?集成测试(黑盒或灰盒)在自动化测试中足够吗?TDD 只是个安慰剂吗?类型系统才是真正的出路吗?
让我们讨论一下!:)
文章来源:https://dev.to/kayis/what-are-the-alternatives-to-unit-tests-2jii