 Laravel по-русски
Laravel по-русски
      
      
    Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Доброго времени суток!
7.0, 5.3
Контроллер:
public function index()
    {
        // Модель внедряется в конструкторе
        $users = $this->user->whereHas('roles', function ($query) {
            $query->where('on_display', '!=', 'нет');
        })->paginate(3);
        return view('users.index', ['users' => $users]);
    }Тест, который проходит:
public function testIndex()
    {
       $response = $this->call('GET', 'users');
        $this->assertViewHas('users');
        $users = $response->original->getData()['users'];
        $this->assertInstanceOf('Illuminate\Contracts\Pagination\Paginator', $users);
}Тест, который не проходит:
public function testIndex()
    {
        //Эта часть теста проходит
        $mock = Mockery::mock('Eloquent', User::class);
        $mock->shouldReceive('whereHas')->once();
        $this->app->instance(User::class, $mock);
        $this->call('GET', 'users');
        // А если с этой строкой, то ошибка
        $this->assertViewHas('users');
       
    }The response was not a view.
Failed asserting that false is true.
Никто не подскажет, в чем может быть дело? 
Функционально все работает нормально. На сам характер задачи прошу внимания не обращать, я только учусь тестировать.
И второй вопрос, может, ну его, это юнит-тестирование, обойтись функциональным?
С уважением.
Не в сети
Страницы 1