PHPUnit:如何在Helper文件中测试单个函数



我想在助手文件中测试一个新函数。

function isProductionSite() {
return !(bool) preg_match('/admin|development/', request()->getHttpHost());
}

当我在测试函数中调用这个函数时,我会得到我的本地地址。因此,我试图模拟请求((->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。但是要测试的函数(isProductionSite(((中的getHttpHost((为我提供了正确的主机。

如何在测试用例中设置HttpHost,以便助手函数输出被操纵的主机

您正在模拟$request的一个实例,但被测试函数使用的实例不是mock,可能是一个全局变量。

依赖项应始终传递给助手函数。只需添加$request作为isProductionSite的参数即可。

最新更新