我想知道在将TDD应用于递归函数的设计方面是否有任何最佳实践。我的具体案例是一个导航Graph的函数。
我总是像屠夫一样编写这个函数,通常用一种方法。
因此现在是TDD的重要人物,并且重构模式,我想知道是否有一个很好的方法来TDD递归函数,如果应用适当的模式,如策略模式,组合方法等...... / p>
我认为有一件事可能是将遍历的逻辑与节点上的实际操作分开,但我不知道如何......
有什么建议吗?
非常感谢,
答案 0 :(得分:2)
IMMO做一个递归方法来解决问题,这是一个实现选择,一般来说你不想测试实现细节。
如果在将来的某个时候您决定更改为迭代函数,则不需要更改测试并用于验证新实现是否提供与前一个相同的结果。
答案 1 :(得分:1)
有一个很好的YouTube video解释了你的问题: 如何为斐波那契函数做TDD?