muhammad_97
@muhammad_97
PHP-разработчик

Тестирование фасада View Laravel 5.1?

Есть метод getIndex у HomeController:
public function getIndex()
{
    return \View::make('home');
}


В routes:
Route::get('/', ['as' => 'home', 'uses' => 'HomeController@getIndex']);


И простейший тест к нему:

<?php

use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;

class HomeControllerTest extends TestCase
{
    public function testIndexPage()
    {
    	\View::shouldReceive('make')->with('home')->andReturn('test');

    	$response = $this->action('GET', 'HomeController@getIndex');

    	$this->assertResponseOk();
    	$this->assertEquals('test', $response->content());
    }
}


Но почему-то возвращает 500-ю ошибку:

62d3baff5bb043a2a7086429a544fb4d.png

В чем может быть проблема?
  • Вопрос задан
  • 395 просмотров
Решения вопроса 1
Denormalization
@Denormalization
Тестировал на L5 такой код:
<?php

use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;

class HomeControllerTest extends TestCase
{
    public function testIndexPage()
    {
      \View::shouldReceive('make')->with('home')->andReturn('test');
      View::shouldReceive('share');

      $response = $this->action('GET', 'HomeController@getIndex');

      $this->assertResponseOk();
      $this->assertEquals('test', $response->getContent());
    }
}


Ошибки которые были:
- Нужно мокать еще метод share, он там где-то вызывается.

Вообще я не вижу смысла тестировать View фасад - там нечего тестировать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы