Laravel中如何从其他PHP文件导入数据用于单元测试?
问题解答
需求可行性
可以实现,将测试数据集单独存放在返回数组的PHP文件中,是单元测试场景下非常常用的测试数据管理方案。
报错原因
你遇到的报错是因为直接使用了未定义的标识符userData:你既没有先加载userData.php文件,也没有将该文件返回的数组赋值给对应变量,PHP会将无引号包裹的裸标识符默认识别为常量,找不到对应常量定义就会抛出该错误。
正确操作步骤
- 首先在需要使用测试数据的单元测试文件中,引入
userData.php并接收其返回的数组到变量中,示例代码如下:
// 此处路径需要替换为你项目中userData.php的实际相对路径 $userData = require __DIR__ . '/../userData.php';
- 之后调用变量即可正常获取数据:
dd($userData);
补充注意事项
- 可以用
require_once替代require,避免重复加载文件导致的报错 - 拼接路径时建议使用
__DIR__常量,可避免不同执行环境下工作目录不一致导致的路径解析错误 - 你当前提供的
userData.php代码末尾的数组声明缺少分号,运行时会触发语法错误,修正后的完整代码如下:
<?php return [ [ 'name' => 'Perla', 'age' => 13, ], [ 'name' => 'Felepe', 'age' => 23, ], [ 'name' => 'Timoteo', 'age' => 50, ] ];
内容的提问来源于stack exchange,提问作者アリ・ナディム
相关产品推荐
相关产品推荐

