【发布时间】:2018-05-26 09:50:45
【问题描述】:
我正在尝试从包含使用 Laravel 的 request() 助手的方法的类中测试方法。方法是这样的:
类别类
public function getCanonicalUrl()
{
return preg_match('/\/sale\/./', request()->getRequestUri())
? ''
: url($this->getUrlKey());
}
测试应该使这个助手在执行 getRequestUri() 时正确捕获 URI,但它实际上返回一个空字符串。这是我为测试进行的一千次尝试之一。
测试
public function testCanonical()
{
// ...
$requestMock = Mockery::mock(Request::class)
->shouldReceive('getRequestUri')
->andReturn('/sale/random-string');
$this->app->instance(Request::class, $requestMock);
// ...
}
关于如何实现这一点的任何想法? 提前致谢。
【问题讨论】:
标签: php laravel unit-testing mocking mockery