mardi 12 mars 2019

Unit Testing with Mockery return false

I have written this test :

    public function testSetVisitorLog()
{
    $visitorRepositoryMock = Mockery::mock('App\Repositories\VisitorStatisticRepository');
    $this->app->instance('App\Repositories\VisitorStatisticRepository',$visitorRepositoryMock);
    $visitorRepositoryMock->shouldReceive('setLog')->once();

    $visitorAction = new VisitorStatisticAction($visitorRepositoryMock);
    $this->assertEquals(true,$visitorAction->setLog('fars'));
}

I call setLog in VisitorStatisticAction class with an string input

in VisitorStatisticAction i have this :

    public function setLog($organizationSlug)
{
    dd($this->repository->setLog($organizationSlug));
    if (!$this->repository->setLog($organizationSlug)) {
        return false;
    }

    return true;
}

I don't know why dd($this->repository->setLog($organizationSlug)); is return null

setLog in repository is this :

    public function setLog($organizationSlug)
{
    $visitor = new VisitorStatistic();
    $visitor->organization_slug = $organizationSlug;
    $visitor->ip = request()->ip();
    $visitor->url = url()->current();
    $visitor->save();
    return $visitor;
}

Aucun commentaire:

Enregistrer un commentaire