【发布时间】:2013-02-11 11:08:12
【问题描述】:
我有一个方法可以返回 0 到 10 之间的随机数。
public int roll(){
int pinsKnockedDown = (int) (Math.random() * 10);
return pinsKnockedDown;
}
我将如何为此编写 JUnit 测试?到目前为止,我已经将调用置于一个循环中,因此它运行了 1000 次并且如果测试失败 - 数字小于 0 - 数量超过 10 个
我如何测试所有的数字不一样,即
【问题讨论】:
-
运行多次(数百万次),计算每个数字的出现次数并确定它是否足够随机。例如:en.wikipedia.org/wiki/Statistical_randomness
-
您可能想要接近均匀分布的东西。这不是您可以通过单元测试轻松“测试”的东西,而不是证明您的 RNG 为您想要的范围产生均匀分布可能会更容易(并且可以说更有用)..
-
我不会。这是单元测试发疯了。代码的形式保证了结果。您不必测试库 API 或乘以十。