Просмотр не найден в моих тестах пакетов laravel

#php #laravel #package #package-development

Вопрос:

Я пытаюсь добавить директивы blade для своего пакета Laravel.

Все в порядке, но на этапе тестирования я получаю эту ошибку:

 1) MahbodHastamUserWalletTestsFeatureBladeTest::show_user_wallet_balance
InvalidArgumentException: View [userWalletBalance] not found.
 

Должен ли я обратиться $this->loadViewsFrom(...) к поставщику услуг?

Путь просмотра: /tests/resources/views/userWalletBalance.blade.php

Тестовый путь: /tests/Feature/BladeTest.php

Я также попытался переместить resources каталог в Feature каталог (рядом с BladeTest.php ), но получил ту же ошибку.

Это мой код на BladeTest.php :

 public function show_user_wallet_balance() {
    $wallet = UserWallet::getWallet(wallet_id: 1);

    $this->assertEquals('1000', $this->renderView('userWalletBalance', ['wallet' => $wallet]));
}

protected function renderView($view, $with) {
    Artisan::call('view:clear');

    return trim((string) view($view)->with($with));
}
 

Комментарии:

1. Вы можете обратиться к laravelpackage.com/09-routing.html#views для получения дополнительной информации о загрузке представлений в пакет.

2. В документах говорится о загрузке представлений для всего пакета, но я хочу загрузить представления в своих тестах для тестирования директив blade, которые я добавил ранее.

Ответ №1:

Я исправил это 😀

Вместо загрузки представлений из файлов я использовал InteractsWithViews свойство (которое находится в IlluminateFoundationTestingConcerns пространстве имен) для визуализации блейда, как показано ниже:

 $renderedView = (string) $this->blade("@userWalletBalance($wallet)");

$this->assertEquals('1000', trim($renderedView));