Тестирование данных, доступных для всех представлений, чтобы убедиться, что они существуют

Я делюсь несколькими вещами со всеми представлениями в моем проекте laravel в AppServiceProvider:

public function boot()
    {

        $userLocation = geoip()->getLocation(geoip()->getClientIP());

        view()->share(['user' => \Auth::user(), 'userLocation' => $userLocation]);
    }

Но когда я проверяю это, они не появляются:

/** @test */
public function page_has_recent_reviews()
{
    $response = $this->get(route('home'));

    $response->assertSuccessful();

    $response->assertViewHasAll(['recentReviews', 'recentPhotos']);

    $data = $response->getOriginalContent()->getData();

    print_r(array_keys($data)); exit;

}

Выгруженное содержимое содержит:

Array
(
    [0] => recentReviews
    [1] => recentPhotos
)

Но ни одна из данных не была передана в представление. Как это проверить?

Если вы сделаете $response->getOriginal('user'), что вы получите?

Mihir Bhende 19.02.2019 23:29

«BadMethodCallException: метод Illuminate\Http\Response::getOriginal не существует».

Jafo 20.02.2019 03:07
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
2
20
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Итак, через некоторое время я обнаружил, что если вы поделитесь данными в обратный вызов композитора в AppServiceProvider (метод загрузки), они затем будут отображаться в тестах:

view()->composer('*', function($view) use ($userLocation, $ratingStars, $icons)
    {
        $view->with(['userLocation' => $userLocation, 'user' => \Auth::user());
    });

Другие вопросы по теме