单元测试 – 涉及随机数的单元测试算法

我正在写一些关于分形和随机地形生成代码.具体来说,我现在使用的是Diamond-Square算法.对于那些不知道的人,它基本上获得了四个值的平均值,并且每一步都添加一个随机数.我将如何测试结果?我应该使用已知种子并手动计算平均值加上随机值,或者是什么?相反,我应该使用随机数计算代码中的结果吗?或者还有另一种方式吗?此外,一些关于逆向过程的想法(a.k.a.TDD,代码前的写入测试)将非常感激.

解决方法

您可以使用模拟框架来模拟随机生成.这样,您可以从结果中删除随机性,并且能够使用一组静态的预定义测试用例来测试您的代码.

在所有情况下,您不是测试随机生成,而是测试您正在进行的计算.如果你有一个错误,你真的需要知道用于重现故障的随机数.

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...