eth*_*far 2 testing tdd methodology unit-testing class
我是TDD的新手并且我很想开始使用它,但每当我正在处理的测试用例需要一个尚不存在的类(作为输入或作为输出)时,我都会遇到冲击.
问题是我不知道是否创建没有任何功能的类(是否考虑未经测试的代码?),或者停止测试(当它是绿色时),并开始为这个新的非编写测试 - 现有的课程.
第二种方法似乎是递归的,可能会让我失去思路,而第一种方法创造了一个没有测试的新课程.
有没有第三种方法我没有想到,哪种更好?
你可以双向前进.有时,只是创建一个新的辅助类并暂时将其保留为空壳是一种很好的方法.
但是,TDD的主要好处是有关您的代码的反馈,因此,如果您遇到这种情况,您应该停下来考虑一下这会告诉您API的设计.
尽管如此,这没有什么本质上的错误,因为它还取决于你的整体方法.如果你正在进行Outside-In TDD,这往往会发生很多事情,因为你从抽象层面开始并逐渐降低(而且爱人级别的类尚不存在).
另一方面,如果你做自下而上的TDD,这不应该经常发生,因为你从构建块开始,然后从这些构建块组成更高级别的类.
在任何情况下,"递归"方法都是使用Git真正发光的情况的一个例子,因为每次你遇到你需要在你正在写的那个之前写另一个测试时,你可以去
git stash
Run Code Online (Sandbox Code Playgroud)
然后编写新测试.当你完成新测试后,你可以去
git stash pop
Run Code Online (Sandbox Code Playgroud)
返回原始测试.您可以递归地执行此操作,这样可以帮助您跟踪您的想法.