【发布时间】:2010-08-15 04:53:27
【问题描述】:
考虑以下代码(根据要求 3 出于某种原因是特殊的):
bool IsSpecial(int value)
if (value == 3)
return true
else
return false
我将使用几个函数对此进行单元测试 - 一个名为 TEST(3IsSpecial) 的函数断言,当传递 3 时,该函数返回 true,另一个传递除 3 之外的某个随机值并断言该函数返回 false。
当需求发生变化并说它现在变为 3 并且 20 是特殊的时,我会编写另一个测试来验证当使用 20 调用此函数时也返回 true。该测试会失败,然后我会去更新函数中的 if 条件。
现在,如果我的团队中有些人不相信单元测试并且他们做出了这种改变怎么办。他们将直接去更改代码,因为我的第二个单元测试可能不会测试 20(它可能是随机选择一个 int 或有一些其他 int 硬编码)。现在我的测试与代码不同步。我如何确保当他们更改代码时某些单元测试或另一个失败?
我在这里可能做错了什么,所以也欢迎任何其他技术来解决这个问题。
【问题讨论】:
标签: unit-testing tdd