我想实现一个方法来告诉我坐标(x 和 y)是否超出范围。我应该写多少测试?对我来说似乎是 5:
- 测试负 x 越界
- 测试正 x 越界
- 测试负 y 越界
- 测试正 y 越界
- 测试是否有边界
我是否在创建冗余测试,我是否应该为我想要实现的每个方法只进行 1 次测试?
最佳答案
这通常不是我们在 TDD 中考虑的方式。更多的是:“我接下来需要做什么测试?”所以,通常,我会从(伪代码)开始
given: bounds (5, 10, 15, 20)
assert: outOfBounds(0, 0)
并通过
outOfBounds(x, y): return true
但我知道这还不是真的,所以我知道我需要另一个测试。
assert: !outOfBounds(5, 10)
所以现在失败了。可能可行的最简单的事情是什么?也许
outOfBounds(x, y): return x == 0
当然我知道我还在假装,所以我需要再做一次测试。这一直持续到我不再伪装为止。也许,在这种情况下,我会得到与您对“多少测试”问题所做的相同的 5 个案例 - 但也许我会意识到我做的比这早一点。
一个更好的问题是:我需要再做一次测试吗?
关于c++ - 在 TDD 中,我应该为一个方法编写多少测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5863589/