Итак, я пытаюсь смоделировать служебный метод.
В моем служебном файле:
/**
* Return all Api Keys for current user.
*
* @return Collection
*/
public function getApiKeys(): Collection
{
$user = Auth::user();
return ApiKey::where('org_id', $user->organizationId)->get();
}
Как мне смутить это?
<?php
namespace App\Services;
use PHPUnit\Framework\TestCase;
use Mockery as m;
class ApiKeysServiceTest extends TestCase
{
public function setUp()
{
parent::setUp();
/* Mock Dependencies */
}
public function tearDown()
{
m::close();
}
public function testGetApiKeys()
{
/* How to test? $user = Auth::user() */
$apiKeysService->getApiKeys();
}
}
В моем классе TestCase у меня есть:
public function loginWithFakeUser()
{
$user = new GenericUser([
'id' => 1,
'organizationId' => '1234'
]);
$this->be($user);
}
Я хочу протестировать этот метод.Может быть, это включает в себя реструктуризацию моего кода, чтобы $ user = Auth :: user () не вызывался в методе.Если дело обстоит так, есть какие-нибудь мысли относительно того, куда это должно пойти?
Спасибо за Ваш отзыв.