我是 TDD 的新手,很想开始使用它,但是每当我正在处理的测试用例需要一个尚不存在的类(作为输入或作为输出)时,我总是遇到困难).
问题是我不知道是创建没有任何功能的类(是否被认为是未经测试的代码?),还是停止测试(当它是绿色的时候),然后开始为这个新的不存在的类。
第二种方法似乎是递归的,可能会导致我失去思路,而第一种方法创建了一个没有测试的新类。
有没有我没有想到的第三种方法,哪种方法更可取?
最佳答案
你可以双管齐下。有时,只创建一个新的辅助类并暂时将其作为一个空壳是一个很好的方法。
但是,TDD 的主要好处是关于您的代码的反馈,因此如果您经常遇到这种情况,您应该停下来考虑一下这对您的 API 设计有何启示。
不过,这本身并没有错,因为它还取决于您的总体方法。如果你在做 Outside-In TDD这往往会发生很多,因为您从抽象级别开始,然后逐步下降(并且情人级别的类尚不存在)。
另一方面,如果您执行自下而上的 TDD,这不应该经常发生,因为您从构建 block 开始,然后从这些构建 block 组成更高级别的类.
无论如何,“递归”方法是使用 Git 的情况的一个示例真的很棒,因为每次您遇到需要在您当前正在编写的测试之前编写另一个测试时,您可以去
git stash
然后编写新的测试。完成新测试后,您可以继续
git stash pop
返回原来的测试。您可以递归地执行此操作,因此它可以帮助您跟踪您的想法。
关于class - TDD 我应该创建一个测试用例所需的空类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22293230/