[英]Mock php functions
我為我的項目制作了一個 symfony 4 可重用包。 我想用接近 100% 的覆蓋率來測試它。 但我不知道如何測試依賴於 php 函數的代碼的某些部分。
例子 :
public function getStatusCode(\Exception $exception)
{
if ($exception instanceof HttpExceptionInterface) {
return $exception->getStatusCode();
}
if (is_a($exception, "Symfony\Component\Security\Core\Exception\AccessDeniedException")) {
return Response::HTTP_UNAUTHORIZED; // I want to test this
}
return Response::HTTP_INTERNAL_SERVER_ERROR;
}
我嘗試使用 getMockBuilder 但模擬的類不正確。
有沒有辦法模擬或替換 is_a 或創建一個類與條件相同的模擬?
如果你真的想模擬這個功能,你可以使用這個包: https : //packagist.org/packages/hjerichen/prophecy-php
這是 PHPUnit TestCase 中測試方法的簡單示例。
$php = $this->prophesizePHP(__NAMESPACE__);
$php->is_a($exception, "Symfony\Component\Security\Core\Exception\AccessDeniedException")->willReturn(true);
$php->reveal()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.