Ж
Жизнь разработчика
@fdeveloper_life4 подп.
19просмотров
28 июля 2023 г.
Score: 21
Всем доброго времени суток. Совсем недавно, при написании тестов на Laravel, решили использовать Pest. Изучив его документацию мы поняли что он выглядит гораздо лаконичнее и проще чем PHPUnit. Но мы столкнулись с одной проблемой, когда делаешь Mocking фасадов Laravel, в частности Http::fake() и Http::preventStrayRequests(). Получали следующую ошибку Call to a member function {function} on null Такая ошибка появлялась только в Unit тестах, в Feature же такого не наблюдалось Потратив какое то время на гугление не нашли решение в самом гугле. При обсуждении один из разработчиков вспомнил, что да, действительно, такая же ошибка появляется когда используешь PHPUnit для Unit тестов в Laravel. Там это решается довольно просто. // Меняем данный use в классе теста use PHPUnit\Framework\TestCase; // на следующий use use Tests\TestCase; Но тогда возник вопрос, а как сделать так чтобы use Tests\TestCase; использовался в pest? Все оказалось проще, не надо это делать в каждом файле тестов. Просто выполняем команду, которая создаст в корне testing директории Pest.php файл. ./vendor/bin/pest --init В данном файле размещаем следующий код. uses( Tests\TestCase::class, )->in('Unit'); Что даст нам спокойно делать Mocking фасадов Laravel. Всем спасибо за внимание.
19
просмотров
1315
символов
Нет
эмодзи
Нет
медиа

Другие посты @fdeveloper_life

Все посты канала →