我有以下构造函数:
public function __construct()
{
$relations = \Input::get('relations');
}
我试图在单元测试中替换输入,但由于输入在构造函数内部,我无法替换它。如果我把Input :: get(' relations')放在构造函数之外就可以了。
我尝试的是:
\Input::replace(array('relations'=>'relName'));
\Request::replace(array('relations'=>'relName'));
它们都在构造函数之外工作,并且它们都不在构造函数内部工作。
任何人都可以帮助我吗?
答案 0 :(得分:0)
看起来你正试图在这里嘲笑一个Facade。您应该查看有关如何在测试中模拟外墙的最新文档:
http://laravel.com/docs/5.1/testing
这个想法基本上可以使用Mockery的方法,如shouldReceive
等
例如:
<?php
class FooTest extends TestCase
{
public function testGetIndex()
{
Cache::shouldReceive('get')
->once()
->with('key')
->andReturn('value');
$this->visit('/users')->see('value');
}
}
这样您根本不需要Input::replace
。