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