Мне нужно преобразовать свои модульные тесты в кодирование. Мне нужно использовать функцию loginWithFakeUser () из этой статьи - Как издеваться над аутентификацией пользователя в модульном тесте в Laravel?
public function loginWithFakeUser() {
$user = new User([
'id' => 1,
'name' => 'yish'
]);
$this->be($user);
}
Как я могу использовать $this->be(), если мой класс уже расширяет \Codeception\Test\Unit? Не знаю, что мне делать с use .. и как правильно пользоваться. Поместите функцию loginWithFakeUser () внутрь этого:
use Illuminate\Foundation\Testing\Concerns\InteractsWithAuthentication;
use Illuminate\Foundation\Testing\Concerns\InteractsWithSession;
class AdminTest extends \Codeception\Test\Unit {
use InteractsWithAuthentication;
use InteractsWithSession;
}
Выдает ошибку:
[ErrorException] Undefined property: AdminTest::$app
Я не знаю, как установить переменную $ app. Помогите, пожалуйста. Большое спасибо!






Я смог решить эту проблему, высмеяв класс Auth.
$oUser = new User([
'id' => 1,
'name' => 'yish'
]);
Auth::shouldReceive('check')->once()->andReturn(true);
Auth::shouldReceive('user')->once()->andReturn($oUser);
Где в моем фактическом коде он использует его как:
if (Auth::check() === true) {
$sName = Auth::user()->name;
}