Dan*_*iel 3 c++ testing tdd unit-testing
我想实现一个方法,告诉我坐标(x和y)是否超出范围.我应该写多少次测试?对我来说似乎是5:
我是否创建了冗余测试,我应该对每个要实现的方法只进行1次测试?
这通常不是我们在TDD中考虑它的方式.它更多:"我接下来需要什么测试?" 所以,通常,我会从(伪代码)开始
given: bounds (5, 10, 15, 20)
assert: outOfBounds(0, 0)
Run Code Online (Sandbox Code Playgroud)
并通过
outOfBounds(x, y): return true
Run Code Online (Sandbox Code Playgroud)
但我知道那还不是真的,所以我知道我需要另一个测试.
assert: !outOfBounds(5, 10)
Run Code Online (Sandbox Code Playgroud)
所以现在失败了.什么是最简单的可能工作?也许
outOfBounds(x, y): return x == 0
Run Code Online (Sandbox Code Playgroud)
当然我知道我还在假装它,所以我需要另一个测试.这种情况一直持续下去,直到我不再伪造它.也许,在这种情况下,我会结束与你的"多少测试"问题相同的5个案例 - 但也许我会意识到我做得比这更快一点.
一个更好的问题是:我需要另一个测试吗?