Ich versuche, ein Modell zu verspotten und falsch auf Einsatz zurück, so dass ich Fehlerfall testen kann.Laravel Modell Mock
hier ist mein Test verspotten
$mockModel = Mockery::mock(\App\Models\MyModel::class)->shouldReceive(['insertGetId'])->once()->andReturn(false);
und hier ist meine insert-Methode in Controller
$result = MyModel::insertGetId(['something' => 'somevalue',]);
dd($result);
und ich erwarte $ Ergebnis falsch sein, aber stattdessen bekomme ich die ID (int).
wenn ich dd() entferne; Ich bekomme diesen Fehler auf dem Terminal.
Mockery\Exception\InvalidCountException: Method insertGetId() from Mockery_0_App_Models_MyModel should be called
exactly 1 times but called 0 times.
danke aber immer noch werde ich wahr. Spott sollte abgefangen und stattdessen falsch zurückgegeben haben. –
auch wenn ich insert dann wie würde ich letzte einfügen? –
Sie können eine Überprüfung wie wenn Rückgabewert ist 0 dh falsch, und wenn sie erfolgreich eingefügt, als es die ID, die definitiv größer als 0 ist –