php - 使用 PHPUnit 测试 mt_rand 函数

标签 php phpunit

我会用 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/

相关文章:

php - 将 get_class 与 PHPUnit 模拟对象一起使用的测试代码

testing - PhpUnit 和 PhpRack 有什么区别?

php - Symfony/PHPUnit 模拟服务

php - 强制 javascript 生成的内容显示自身

php - wordpress 页脚不在 footer.php 中

php - 通过 AJAX 注入(inject)受控 HTML 是否是一个安全问题?

unit-testing - 单元测试 : How to test a subclass in isolation from its parent?

php - 在网站上不间断地播放 mp3?

php - 在不提供链接标识符的情况下查询数据库是不好的做法吗?

laravel - 在运行 laravel phpunit testcase 时,我在 Model.php 第 1249 行收到错误 "Call to a member function connection() on null"