php - 如何模拟 laravel 辅助函数请求
问题描述
你如何模拟 request() 辅助函数?
例如,如果我有一个调用函数
$name = request()->input('name')
如何模拟该调用,我尝试了以下方法,但我收到一个错误,它从未被调用
$requestMock = $this->mock(Request::class);
$requestMock->shouldReceive('input')->once()->andReturn($name);
解决方案
如果您查看request()
帮助程序(https://github.com/laravel/framework/blob/05da44d6823c2923597519ac10151f5827a24f80/src/Illuminate/Foundation/helpers.php#L602),它正在从容器中检索请求类的实例。在你设置好你的模拟请求类并添加你的期望之后,你需要将它绑定到容器:
$this->app->instance(‘request’, $mock);
推荐阅读
- typescript - 是否可以在 Typescript 中构造一个允许对象但不允许错误的类型?
- express - NextJS:如何在根处理多个动态路由
- c# - Windows 是否缓存程序集使用的 .NET 版本?
- r - 有没有办法在 R 中逐月查找相同的值?
- haskell - Haskell 中 TUI 的无限循环和中断
- bluetooth-lowenergy - 外设如何在蓝牙连接中获取中央设备名称
- android - 哪种类型的连接允许服务器将数据发送到客户端而无需客户端先询问?
- r - 如何按组进行配对t检验并保存结果?
- javascript - 如何从 WebAssembly 模块中检测浏览器信息?
- google-cloud-platform - 更改 BigQuery 中记录列的类型