假设我有一个用户类,其中有一个方法is_old_enough?
该方法只检查年龄是否超过18岁。看起来非常简单。
TDD是否意味着我必须为此编写一个测试,即使它很琐碎?
class User
def is_old_enough?
self.age >= 18
end
end
如果这样做,为什么?编写测试的好处是什么?你只需要测试x >= y是否按照预期工作,而不是测试>=运算符的工作方式。
因为我看到最可能发生的情况是以下情况:
事实证明年龄实际上应该是21岁。那是一个bug,测试没有捕捉到,因为在编写代码时他们有错误的假设。然后他们进去并将方法更改为>= 21。但现在测试失败了!所以他们不得不去修改测试。因此,测试没有帮助,实际上在重构时给出了错误的积极警报。
看起来像这样简单的方法的测试实际上并没有测试任何有用的东西,而且实际上会伤害你。