php - PHP 模拟测试在 PHPUnit 内的方法调用部分不起作用
问题描述
我在 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'
应该留在生产中。
推荐阅读
- sql-server - SQL窗口函数中的高效限制结果集
- swagger-ui - 无法从 Swagger UI 和 Thorntail 执行 Rest 方法
- javafx - java - 如何在JavaFX中添加事件侦听器以检测何时选择(单击)GridView中的自定义GridCell?我正在使用 ControlsFX 库
- css - min-width 和 max-width 不适用于 flex,加上与 flex 方向结合
- elasticsearch - elasticsearch 查询花费所有时间在 create_weight
- c# - 如何一次只生成 x 个 html 元素
- unity3d - 为 Unity2d 游戏添加基于 3 星的评分系统
- python - TypeError:“库”对象不可调用
- excel - 停止excel添加额外的引号
- firebase - 在 Firestore 中使用子集合有什么好处吗?