【发布时间】:2021-07-25 17:55:15
【问题描述】:
我想在帮助文件中测试一个新函数。
function isProductionSite() {
return !(bool) preg_match('/admin|development/', request()->getHttpHost());
}
当我在我的测试函数中调用这个函数时,我得到了我的本地地址。因此我试图模拟 request()->getHttpHost.
public function testIsProductionSiteExpectFalse(): void
{
$request = Mockery::mock(Request::class);
$request->shouldReceive('getHttpHost')->once()->andReturn('admin.mydomain.de');
$this->assertFalse(isProductionSite());
}
在 Tets 函数中,$request->getHttpHost() 现在将输出 admin.mydomain.de。但是要测试的函数中的 getHttpHost() (isProductionSite()) 为我提供了正确的主机。
如何在测试用例中设置 HttpHost,以便帮助函数输出被操纵的主机?
【问题讨论】:
标签: unit-testing testing mocking phpunit