php 如何测试使用兰德()的函数?

m2xkgtsf  于 2022-11-21  发布在  PHP
关注(0)|答案(1)|浏览(137)

我有一个使用rand()函数的函数,我想对它进行单元测试...但是我很挣扎。
我目前正在使用Phockito来帮助模拟和模拟返回等

public function myFunction()
{
    return hash(
      'sha256', 
      'this is some random string: ' . rand()
    );
}

测试文件:

public testFunction()
{
    $myClass = new MyClass();
    $result = $myClass->myFunction();
    $expected = /* Some hashed string I expect */;

    $this->assertEquals($expected, $result);
}

我曾经考虑过尝试模仿我正在使用的类Phockito::,但是在这个过程中连接的所有其他函数也需要被模仿......这将是一个很大的工作。

6l7fqoea

6l7fqoea1#

要么使用像php-mock这样的库来模拟php函数,要么重构你的函数来接受你的随机数作为参数,比如:

public function myFunction($rand = null) {
  $rand = $rand ?? rand();
  // ...
}

相关问题