我会用 PhpUnit 创建一些测试。但是我想测试的 php 文件使用了 mt_rand() 函数。那么我怎样才能创建一个知道 mt_rand() 上次返回值的测试呢? 感谢您回答我的问题,抱歉我的英语不好,我来自德国 ;)
最佳答案
Mersenne Twister算法是一种确定性算法。它从一个种子开始,然后根据它生成随机数。因此,给定种子相同,它将生成相同的随机数。
通常 PHP 使用一些基于 microtime
的数据为 mt_rand
播种,但您可以使用 mt_srand
手动播种它.
mt_srand(0);
var_dump(mt_rand());
mt_srand(0);
var_dump(mt_rand());
请注意,这两个函数调用都会为您提供相同的号码 963932192
。
因此,您基本上需要做的就是手动为它播种,您将能够预测它生成的所有数字。
关于php - 使用 PHPUnit 测试 mt_rand 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4910156/