我想寫一個類,它將讀取它構造的構造函數給出的路線。然而,即使經過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();
}
}