Intereting Posts
Получение ошибок при попытке переиндексации с использованием ssh в Magento Результат Loop MySQL Как декодировать строку JSON в PHP? Сортировка массива объектов по полям объекта Запросы нескольких частей в PHP PHP – Линия конвертации почты формы в пробелы Проверьте созданную строку на базу данных, и если она найдена, создайте новую строку? Убедитесь, что WooCommerce address_field_1 содержит номер дома перед порядком обработки Не удается получить доступ к сохраненному идентификатору связанного объекта напрямую, не получая целую сущность ОШИБКА: Предупреждение: mysql_num_rows () ожидает, что параметр 1 будет ресурсом, boolean задан в C: \ xampp \ htdocs \ … \ … php в строке 19 php return или reference? Вызов любой php-функции с помощью общего javascript ajax без jQuery Возможно ли, чтобы preg заменил уникальные переменные на строку? Предупреждение: preg_match () : Неизвестный модификатор '(' Можно ли скрыть столбец Yii2?

Тестирование модулей с помощью файла приложения конфигурации в Laravel

Здесь мой метод модели основан на config() global;

 public function getGroup() { if(config('app.pages.'.$this->group.'.0')) { return $this->group; } return "city"; } 

Здесь я пытаюсь проверить этот метод в своем модульном тестовом классе;

 public function testGetGroupReturnsCityAsDefault() { $response = new Response(); $response->group = "town"; $test = $response->getGroup(); dd($test); } 

Ошибка, которую я получаю;

 Error: Call to a member function make() on null /home/vagrant/sites/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:62 /home/vagrant/sites/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:163 

Я знаю, что это связано с глобальным config (). Но не уверен, как установить его в моем тесте. Я пытался

 public function setUp() { config(['app.pages' => [ 'city' => [........ 

Но получил ту же ошибку. Как я могу это настроить?

Я не уверен, что вы решили это, но у меня была аналогичная проблема.

Мне нужно было сделать две вещи, чтобы заставить ее работать:

1) Убедитесь, что вы вызываете родительский метод setUp следующим образом:

 public function setUp() { parent::setUp(); // other stuff } 

2) Убедитесь, что ваш тестовый класс расширяет Laravel TestCase а не PHPUnit_Framework_TestCase

Краткое объяснение : в основном ошибка, которую вы получаете, заключается в том, что ContainerInstance of Laravel является нулевым, поскольку вы проходите через PHPUnit и поэтому никогда не создавались. Если вы выполните вышеуказанные шаги, вы убедитесь, что Laravel сначала создаст экземпляр контейнера.

PS Если вы собираетесь в конечном итоге ссылаться на переменные env , вы должны заглянуть в раздел phpunit.xml для переменных phpunit.xml .