将Laravel Input属性注入Mockery会话对象

时间:2016-06-03 16:32:23

标签: php laravel phpunit mockery

我正在使用现有的Laravel应用程序,并尝试为它开始构建测试套件。我使用Mockery库来模拟I类测试的依赖性,但是我遇到了一个我似乎无法解决的障碍。

$leadRepositoryInterface = m::mock('CRM\Storage\Lead\LeadRepositoryInterface');
$response = m::mock('ColorJar\ApiResponse\Response');

$object = new LeadsController($leadRepositoryInterface, $response);

当我运行上面的代码时出现错误,因为LeadsController的父类检查Input :: all()[__ currentUser]并崩溃,因为Input :: all()不返回任何内容。

我需要设置Laravel输入外观变量(我确定我在那里滥用术语,对不起)给我系统中的任何用户但是我在Mockery文档中的任何地方都看不到如何设置模拟对象的属性,我只看到如何设置期望值和返回值。我该怎么做? Laravel允许我设置Input :: all()的返回值吗?

1 个答案:

答案 0 :(得分:0)

您无法模拟输入外观的响应,但您可以模拟Request的基础类。然后你会做这样的事情:

Request::shouldReceive('input->all')->andReturn('someValue');