Я пытаюсь издеваться над моделью и возвращать false на вставке, поэтому я могу проверить ошибку.Laravel model mock
вот мой тест насмехаясь
$mockModel = Mockery::mock(\App\Models\MyModel::class)->shouldReceive(['insertGetId'])->once()->andReturn(false);
и вот мой метод вставки в контроллер
$result = MyModel::insertGetId(['something' => 'somevalue',]);
dd($result);
и я жду $ результат быть ложным, но вместо этого я получить идентификатор (целое).
если я удалю dd(); Я получаю эту ошибку на терминале.
Mockery\Exception\InvalidCountException: Method insertGetId() from Mockery_0_App_Models_MyModel should be called
exactly 1 times but called 0 times.
спасибо, но все же я прав. издевательство должно было перехватить и вместо этого вернуть false. –
также, если я использую вставку, то как бы получить последнюю вставку? –
Вы можете поместить чек, как если бы возвращаемое значение равно 0, т.е. false, и если оно вставлено успешно, то оно вернет идентификатор, который определенно больше 0 –