I have this Service class and use repository class in my Service :
class VisitorStatisticAction
{
protected $repository;
public function __construct(VisitorStatisticRepository $repository)
{
$this->repository = $repository;
}
public function setLog($organizationSlug)
{
if (!$this->repository->setLog($organizationSlug)) {
return false;
}
return true;
}
}
I want to write unit test for this class :
public function testSetVisitorLog()
{
$visitorRepositoryMock = Mockery::mock(VisitorStatisticRepository::class);
$this->app->instance(VisitorStatisticRepository::class,$visitorRepositoryMock);
$visitorAction = new VisitorStatisticAction($visitorRepositoryMock);
$visit = $visitorAction->setLog('gilan');
$this->assertInstanceOf(VisitorStatistic::class, $visit);
}
but i have this error :
1) Tests\Unit\VisitorStatisticTest::testSetVisitorLog Mockery\Exception\BadMethodCallException: Received Mockery_0_App_Repositories_VisitorStatisticRepository::setLog(), but no expectations were specified
I need to use "shouldReceive" and call the method in want to use in :
$visitorRepositoryMock->shouldReceive('setLog')->once()->andReturnSelf();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With