Making http test in laravel 8 in control I create $itemObject object with factory and pass it for edit method
use Tests\TestCase;
class ControllersItemObjectController extends TestCase
{
use DatabaseMigrations;
/** @test */
public function edit_item_object()
{
$this->withoutMiddleware();
$itemObject = ItemObject::factory()->create();
\Log::info(json_encode($itemObject); // I see valid object logged
\Log::info(gettype($itemObject)); // it shows "object"
$this->asAdmin()->get(route('item-objects.edit', ['item_object' => $itemObject]));
and I got error :
Missing required parameter for [Route: item-objects.update] [URI: item-objects/{item_object}] [Missing parameter: item_object]. (View:
/resources/views/item-objects/edit.blade.php)
in routes I have :
| | GET|HEAD | item-objects/{item_object}/edit | item-objects.edit | App\Http\Controllers\ItemObjectController@edit | web |
But in ItemObjectController controller I have :
public function edit(ItemObject $itemObject)
{
\Log::info( json_encode($itemObject) ); // but it returns empty array
return view('item-objects.edit', [
...
]);
}
As parameter $itemObject above is empty it raise error in /resources/views/item-objects/edit.blade.php template above.
But I do not see why this parameter is empty ? Where I lose this value passing valid object into ItemObjectController.edit method?
If there is a way to debug it ? I can not use TELESCOPE for tests...
In route parameter is "item_object", but var name is "$itemObject" I do not see wht $itemObject is empty ...
Thanks in advance!