簡體   English   中英

使用嘲笑Laravel進行錯誤測試

[英]Error make test with mockery laravel

我試圖用嘲笑來測試我的laravel項目中的類方法。
但是,當我嘗試測試phpunit時說我的接口類(正在我需要測試的方法中使用)不是可實例化的。
怎么了?

我的考試課

class HelperRSTest extends TestCase {

    public function tearDown()
    {
      Mockery::close();
    }

    public function test_mockery()
    {
        // $mock = Mockery::mock('HelperRS');
        // $mock->shouldReceive('getRecibosLocacao')->once()->andReturn('mocked');

        $result = HelperRS::getRecibosLocacao(1228);
        var_dump($result);
    }

}

我要測試的目標班

class HelperRS extends \BaseController {

    public static function getRecibosLocacao($id_locacao){

        $pagamentos = App::make('PagamentoRepositoryInterface');

        $locacao = Locacao::find($id_locacao);
        $pagamento = $pagamentos->getByVendaByTipo($locacao->cod_locacao, 'l');

        dd($pagamento);

    }

}

錯誤:

1) HelperRSTest::test_mockery
Illuminate\Container\BindingResolutionException: Target [PagamentoRepositoryInterface] is not instantiable.

您在HelperRS上調用的方法是靜態方法,而您正在創建該類的模擬實例,而實際上並未對其進行任何操作。 您可以通過嘲笑來實現此目的,盡管不建議這樣做,並且將要求您在進程隔離中運行測試。

$mock = Mockery::mock('alias:HelperRS');
$mock->shouldReceive('getRecibosLocacao')->once()->andReturn('mocked');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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