【发布时间】:2010-04-09 17:59:43
【问题描述】:
好的,我知道我会做出这样的声明,所以我的问题是让每个人都说服我我错了。以这种情况为例:
我有方法A,它调用方法B,它们在不同的层。
所以我对 B 进行了单元测试,结果为 null。所以我测试返回null,单元测试通过。不错。
然后我对 A 进行单元测试,它期望从 B 返回一个空字符串。所以我模拟 B 层所在的层,返回一个空字符串,测试通过。又好看了(假设我没有意识到 A 和 B 的关系,或者可能是两个不同的人正在构建这些方法)
我担心的是,直到我们一起测试 A 和 B,即集成测试,我们才能找到真正的问题。由于集成测试提供了对单元测试区域的覆盖,因此构建所有这些实际上并没有告诉我们任何(或非常)有意义的单元测试似乎是一种浪费。
为什么我错了?
【问题讨论】:
-
@Finglas 我更改了他帖子的标题以更准确地反映他的要求。在这种情况下,它不是骗子。
-
单元测试适用于没有真正的最后期限、管理不善的日程安排、项目后期引入新要求、更改/故障硬件等...以及有时间去做的人一些东西,比如单元测试。在现实世界中这是不存在的……你的老板永远不会给你时间去做这件事,因为很难从数量上证明它的合理性。
-
@reinier 什么?任何具有管理计划的项目都应该为单元测试留出特定的时间。构建有自己的截止日期,单元测试有另一个截止日期。如果你的公司没有给你时间来测试你创造的东西,那就找一家新公司。
-
@reinier - 你的老板可能不会给你时间进行单元测试,这并不意味着没有老板了解它的重要性。很抱歉您在这样的环境中工作。
-
有时我希望我能对愚蠢的 cmets 投反对票。
标签: unit-testing