Русское сообщество разработки на 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