我的 Java 应用程序涉及在不同位置生成许多随机数。我非常小心地确保我的应用程序从工厂类中检索 java.util.Random 对象,以便我能够将其替换为在单元测试期间生成常量的模拟对象。但这仍然不是一个令人满意的单元测试策略,因为只有在生成的随机数序列具有某种模式时才能到达某些分支。
当涉及 java.util.Random 但我们想控制如何以确定的方式返回数字时,我们应该如何进行单元测试?硬编码一个特定的随机数序列以在我的 Mock java.util.Random 中返回仍然不是很令人满意,因为这也硬编码了单元测试中的调用序列,如果我添加另一个调用来检索,这很可能会改变我的应用程序中某些不相关方法中的随机数。