我正在编写一些关于分形和随机地形生成的代码。目前,我使用的是钻石-方块算法。对于那些不了解的人来说,它基本上是每一步获得四个值的平均值,并添加一个随机数。我该如何测试结果?我应该使用已知的种子并手动计算平均值加上随机值,还是在代码中计算结果,使用随机数?或者还有其他方法吗?此外,对于反向过程(即TDD,在编写代码之前编写测试)的一些想法将不胜感激。
您可以使用一个mocking框架来模拟您的随机数生成。这样,您可以从结果中移除随机性,并能够使用一组静态预定义的测试用例测试您的代码。在所有情况下,您都不是在测试随机数生成,而是在测试您所做的计算。如果您有一个错误,您真正需要知道使用的随机数字来复现该错误。