@vanillathunder

Как выполнить методы перед запуском тестов?

Для тестов использую dusk. Мне нужно выполнить метод перед запуском теста. Пробовал вызывать метод в конструкторе.
class browserTest extends DuskTestCase
{
    public function __construct($name = null, array $data = [], $dataName = '')
    {
        parent::__construct($name, $data, $dataName);
        $this->foo();
    }

    protected function foo()
    {
         //code
    }

Но тогда выдаёт ошибку
PHP Fatal error:  Uncaught RuntimeException: A facade root has not been set. in vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:218
  • Вопрос задан
  • 192 просмотра
Решения вопроса 1
vollthegreat
@vollthegreat
Laravel back-end outsource
Public function setUp() а можно и вынести в базовый клас и от него расширять тесты
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
в DuskTestCase там же есть специальный метод prepare для запуска перед тестами.

Ну и в целом городить какую-то логику и вот такие вызовы непонятно чего в тестах такое себе решение.

Из подготовки к тесту ничего кроме подключаться к базе и накатить миграции не должно быть.

Если надо что-то делать, то делайте в самих тестах уже. Почему в тесте не вызвать этот метод?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы