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