与其他类型的测试相比,为什么单元测试如此受重视?

问题描述 投票:0回答:1

我很难理解为什么单元测试在编码社区中如此受重视。如果我看看任何其他类型的测试(例如功能、集成、TIP),我认为它们中的任何一个都比单元测试对项目实际“做它应该做的事情”带来无限更大的价值。 (需要明确的是,对我来说,单元测试是针对代码库的最小范围进行测试,即像

isPrime
hasThisValue
等函数;像“GetUserData”这样的东西不是单元测试,而是一个功能或实际软件的行为。)

例如,对于功能测试,假设我有 100% 的功能测试覆盖率 - 这意味着子测试涵盖给定功能的每个场景(例如“添加用户”)。为什么我现在要编写单元测试?如果我已经可以保证我的功能完全正常工作,我不明白为什么它们会很重要。即使在我们添加更多功能的情况下(例如“更改用户”、“删除用户”等),我也只会重用我为“添加用户”编写的现有功能,例如

getString
。如果
getString
无法正常工作,那么我只需调整它即可,然后再次重新运行所有功能测试并确保“添加用户”显然仍然有效。也许这只是我编码的方式,但我一直觉得这种“调整”从来都不是一个大问题(如果有必要的话)。

我读过一些其他论点,这些论点指出发现错误更容易,但我认为,如果我已经涵盖了功能测试的子测试中的每个场景,那么这个错误应该来自哪里?这种情况(例如,“添加用户”不允许使用某个符号)应该由功能测试的子测试涵盖(例如“TestDontAllowThisWeirdSymbol”)。

尽管如此,我完全同意单元测试有其目的——但是,与其他类型的测试相比,我认为它们只是“有它就好”,远非强制性的。

unit-testing testing integration-testing
1个回答
0
投票

本质上,单元测试用于识别与安全性、安保性和可靠性相关的缺陷。它们是发现代码每个小部分中的漏洞,然后帮助您修复它们的好方法。

祝您编码愉快,希望这对您有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.