问题描述
我在 PHPStorm 上运行 PHP 8,我正在尝试为返回 IP 字符串的函数创建测试。我正在使用 PHPUnit 和 PHPMock
我的测试中有以下代码:
$UserIpAddress = $this->getFunctionMock(__NAMESPACE__,'ip_request');
$UserIpAddress->expects($this->once())
->method('getRealIpAddr')
->willReturn('127.0.0.1');
我的错误是
Method name is already configured
我已经复制并粘贴了函数名,它肯定在正确的类中。
有什么想法吗?
谢谢
解决方法
固定!经过大量检查各种选项后,应该在测试文件中的代码是
$local = new ip_request();
$this->assertEquals('127.0.0.1',$local->getRealIpAddr());
在实际的类文件中
$ip = $_SERVER['REMOTE_ADDR'] ?? '127.0.0.1';
我认为 ?? '127.0.0.1'
不应该留在生产环境中。