Thank you for your time. I have stripped out the fluff from the code/test.
The furthest I have got with this is that setAttribute requires two strings as param´s, but i am passing in an Carbon object, which Mockery as a test suite does not like? Is this the case, is there a better way to test dates with Mockery/PHPUnit? Other tests and code works, it seems like it´s only this test that is an issue.
Error
1) Tests\Unit\Services\StageServiceTest::update_stage
Mockery\Exception\NoMatchingExpectationException: No matching handler found for Mockery_13_App_Entities_Subcategory::setAttribute('stage_updated_at', object(Carbon\Carbon)). Either the method was unexpected or its arguments matched no expected argument list for this method
Objects: ( array (
'Carbon\\Carbon' =>
array (
'class' => 'Carbon\\Carbon',
'properties' =>
array (
),
),
))
Bit of the test
$subcategory = \Mockery::mock(Subcategory::class);
$stage = \Mockery::mock(Stage::class);
$subcategory
->shouldReceive('setAttribute')
->with('stage_updated_at', Carbon::now())
->once();
$this->service->updateSubcategoryStage(self::SUBCATEGORY_ID, $stageId);
Bit of the code
$subcategory->stage_updated_at = Carbon::now();
$subcategory->save();
Aucun commentaire:
Enregistrer un commentaire