Вызов функции-члена connection() в нулевой Laravel 5.4

#php #laravel #phpunit

#laravel #laravel-5.4

Вопрос:

Попробуйте написать модульный тест, и мне нужно выполнить SQL-запрос

 class UpdateThrowsTest extends TestCase
{

protected $bgame;
protected $game_id = 95;

public function setUp(){
    $game = new Game();
    $game = $game::find($this->game_id);
}
}
  

а затем я пишу «phpunit» в консоли и пытаюсь исключить

Вызов функции-члена connection() при нулевом значении.

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

1. Вам необходимо настроить подключение к базе данных для тестов.

2. спасибо, но я не знаю, как это сделать:(

3. Вы можете установить подключение к базе данных по умолчанию в файле .env. Но обычно мы устанавливаем другую базу данных для тестирования, которая была бы определена в phpunit.xml .

4. Судя по вашему коду, создается впечатление, что вы новичок в тестировании. Тестирование включает в себя работу с полностью отделенной базой данных от вашей основной базы данных. Вы генерируете данные в тесте и используете их для запуска дополнительных тестов или других условий. Хотя для начала вам не нужно слишком беспокоиться. Но вам определенно следует прочитать немного больше о тестировании.

5. это мой первый тест

Ответ №1:

Если кто-нибудь столкнется с этой ошибкой во время тестирования с проектом Laravel 6.

Попробуйте проверить, использует ли расширенный тестовый набор правильный тестовый набор. Это может быть связано с тем, что Laravel 6 make:test сгенерировал тест с использованием неправильного TestCase.

Изменение

 use PHPUnitFrameworkTestCase;
  

Для

 use TestsTestCase;
  

Проблема должна решиться.

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

1. Ты — моя палочка-выручалочка. Я потратил несколько дней, пытаясь понять, почему наши тесты не будут выполняться в Laravel 6.

Ответ №2:

У меня была эта ошибка в laravel 7 (ничего не работало, даже php artisan serve), и я исправил ее с помощью

 composer dumpautoload 
  

Перед этим обновите моего поставщика обновлением composer, а затем все работало нормально.

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

1. Вы отвечаете на вопрос, который был задан 3 года назад для laravel 5.4 плюс, я очень уверен, что это не решение вопроса (проблема с подключением к базе данных, а не с загрузкой классов)