Ответы пользователя по тегу PHPUnit
  • Как правильно написать тесты к методу контроллера в LARAVEL?

    @xAockd
    Вы можете просто создать инстанс контроллера и вызвать метод с передачей параметра.

    $controller = new My\Controller();
    $request = Request::create('/', 'GET', ['name' => 'test']);
    $this->assertEquals('test', $controller->sendVeryficationEmail($request));


    Как мокнуть:
    $request = \Mockery::mock(Request::class);
    $request->shouldReceive('input')->once()->andReturn('VasyaPupkin');
    $continer->instance(Request::class, $request);
    $response = $this->call('post', '/user/registerrequest');
    $this->assertEquals('VasyaPupkin', $response);


    Где $container это ларавельный контейнер :)

    А реквест, можно либо мокнуть, либо создать.

    Request::create() ну либо мок, как больше нравится.

    Но, если вы хотите остаться на своем методе, вы можно подменить Request в контейнере, тем же моком.
    Ответ написан
    5 комментариев