gpt4 book ai didi

unit-testing - 自动化单元测试可以代替静态类型检查吗?

转载 作者:行者123 更新时间:2023-12-03 18:08:22 26 4
gpt4 key购买 nike

我已经开始研究整个单元测试/测试驱动的开发思想,我想得越多,它似乎就越能起到与静态类型检查类似的作用。这两种技术都为程序中的某些类型的错误提供了编译时、快速响应的检查。但是,如果我错了,请纠正我,但似乎具有完整覆盖率的单元测试套件将测试静态类型检查将测试的所有内容,然后是一些。或者换一种说法,静态类型检查只是“证明”您的程序正确的一部分,而单元测试可以让您根据需要(在一定程度上)“证明”尽可能多。

那么,如果您还使用单元测试,是否有任何理由使用具有静态类型检查的语言?有人问了一个有点类似的问题 here ,但我想了解更多细节。静态类型检查与单元测试相比有哪些具体优势(如果有)?我想到了一些诸如编译器优化和智能感知之类的问题,但是对于这些问题还有其他解决方案吗?还有其他我没有想到的优点/缺点吗?

最佳答案

关于软件质量有一个不可改变的事实。

If it can't compile, it can't ship



在这条规则中,静态类型语言将胜过动态类型语言。

好的,是的,这条规则不是一成不变的。 Web 应用程序无需编译即可发布(我已经部署了许多未编译的测试 Web 应用程序)。但基本正确的是

The sooner you catch an error, the cheaper it is to fix



静态类型语言将防止在软件开发周期的最早时刻发生真正的错误。动态语言不会。单元测试,如果你彻底达到超人的水平,可以代替静态类型语言。

但是为什么要打扰呢?有很多非常聪明的人以编译器的形式为您编写完整的错误检查系统。如果您担心早点出现错误,请使用静态类型语言。

请不要将这篇文章视为对动态语言的抨击。我每天都使用动态语言并且喜欢它们。它们具有令人难以置信的表现力和灵活性,并允许令人难以置信的迷人程序。但是,在早期错误报告的情况下,它们确实输给了静态类型语言。

关于unit-testing - 自动化单元测试可以代替静态类型检查吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/415434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com