我想写一个类,它将读取它构造的构造函数给出的路线。然而,即使经过1小时的Google搜索,我也没有找到任何如何访问Laravel Controller的getRouter
方法 - 因为it's a static function。 我尝试过很多事情,但大部分时间我得到了以下错误:如何在PhpSpec中访问Laravel Controller的静态属性?
Uncaught Error: Using $this when not in object context in
vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php(49) :
eval()'d code:13
Stack trace: #0 [internal function]: Double\Illuminate\Routing\Controller\P4::getRouter()
我怎样才能做到这一点或者这只是不可能PhpSpec?
我的规格:
use Illuminate\Routing\Controller;
use PhpSpec\ObjectBehavior;
use Prophecy\Argument;
class OptionDescriberSpec extends ObjectBehavior
{
function let(Controller $controller)
{
$this->beConstructedWith($controller);
}
function it_should_read_the_aviable_routes_of_the_controller()
{
$this->getController()->getRouter()->shouldReturn('Router');
$this->render()->shouldReturn('Router');
}
}
我的班级:
use Illuminate\Routing\Controller;
class OptionDescriber
{
/**
* @var Controller
*/
protected $controller;
/**
* OptionDescriber constructor.
*
* @param Controller $controller
*/
public function __construct(Controller $controller)
{
$this->controller = $controller;
}
public function render()
{
return $this->controller->getRouter();
}
}