簡體   English   中英

模擬php函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM