使用PHPUnit测试mt_rand函数

时间:2011-02-05 22:37:59

标签: php phpunit

我会用PhpUnit创建一些测试。但我想测试的php文件使用mt_rand()函数。那么如何创建一个知道mt_rand()返回值的测试呢? 感谢您回答我的问题并抱歉我的英语不好,我来自德国;)

2 个答案:

答案 0 :(得分:14)

Mersenne Twister算法是一种确定性算法。它从种子开始,然后根据它生成随机数。因此,如果种子相同,它将生成相同的随机数。

通常PHP种子{{​​1}}包含一些基于mt_rand的数据,但您可以使用mt_srand手动播种。

microtime

请注意,两个函数调用都会为您提供相同的数字mt_srand(0); var_dump(mt_rand()); mt_srand(0); var_dump(mt_rand());

所以你基本上要做的就是手动播种,你将能够预测它产生的所有数字。

答案 1 :(得分:0)

如果每次使用相同的种子值对mt_rand进行种子处理,您将始终获得由mt_rand()返回的相同系列的值。

例如:

mt_srand(123456);

for ($i = 0; $i < 10; $i++) {
    echo mt_rand(),'<br />';
}