如何TDD和设计递归功能?

时间:2014-07-18 14:13:49

标签: design-patterns recursion tdd

我想知道在将TDD应用于递归函数的设计方面是否有任何最佳实践。我的具体案例是一个导航Graph的函数。

我总是像屠夫一样编写这个函数,通常用一种方法。

因此现在是TDD的重要人物,并且重构模式,我想知道是否有一个很好的方法来TDD递归函数,如果应用适当的模式,如策略模式,组合方法等...... / p>

我认为有一件事可能是将遍历的逻辑与节点上的实际操作分开,但我不知道如何......

有什么建议吗?

非常感谢,

2 个答案:

答案 0 :(得分:2)

IMMO做一个递归方法来解决问题,这是一个实现选择,一般来说你不想测试实现细节。

如果在将来的某个时候您决定更改为迭代函数,则不需要更改测试并用于验证新实现是否提供与前一个相同的结果。

答案 1 :(得分:1)

有一个很好的YouTube video解释了你的问题: 如何为斐波那契函数做TDD?