Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: Laravel
Войти
Регистрация
Восстановить пароль
 
MadHatter
129 / 125 / 46
Регистрация: 15.06.2013
Сообщений: 873
1

Использование функций в трейтах при тестировании

10.05.2019, 08:46. Просмотров 344. Ответов 2
Метки нет (Все метки)

Здравствуйте. Интересует такой вопрос. Пишу функциональные тесты. Пытаюсь вынести некий функционал, который используется не во всех тестах в трейт. В частности UserTrait. Проблема в том что, если в трейте я использую такую конструкцию:
PHP
1
2
3
4
5
6
7
8
9
<?php
namespace Tests\Feature\Traits;
trait UserTrait
{
    public function __construct()
    {
        dd(bcrypt('ok'));
    }
}
, то получаю ошибку
Fatal error: Uncaught ReflectionException: Class hash does not exist in /home/host1532355/develophere.ru/htdocs/sima/vendor/laravel/framework/src/Illuminate/Container/Container.php:767
Stack trace:
#0 /home/host1532355/develophere.ru/htdocs/sima/vendor/laravel/framework/src/Illuminate/Container/Container.php(767): ReflectionClass->__construct('hash')
#1 /home/host1532355/develophere.ru/htdocs/sima/vendor/laravel/framework/src/Illuminate/Container/Container.php(646): Illuminate\Container\Container->build('hash')
#2 /home/host1532355/develophere.ru/htdocs/sima/vendor/laravel/framework/src/Illuminate/Container/Container.php(601): Illuminate\Container\Container->resolve('hash', Array)
#3 /home/host1532355/develophere.ru/htdocs/sima/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(119): Illuminate\Container\Container->make('hash', Array)
#4 /home/host1532355/develophere.ru/htdocs/sima/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(205): app('hash')
#5 /home/host1532355/develophere.ru/htdocs/sima/t in /home/host1532355/develophere.ru/htdocs/sima/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 767

Я так понимаю это происходит потому что на данный момент хелпер еще не подключен, но при его использовании в самом тесте, все работает нормально. Как можно обойти данную проблему?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2019, 08:46
Ответы с готовыми решениями:

Использование функций при работе со строками
Удалить из строки слова, содержащие повторяющиеся символы помогите пожалуйста

Использование функций при работе с двумерными массивами
Дана прямоугольная вещественная матрица . Обнулить все четные столбцы и нечетные строки. В...

При использование функций компилятор выдает ошибки
Здравствуйте, надо использовать некоторые функции библиотеки amd framewave вместо обычных. Я...

Использование функций при обработке двумерных массивов
Понятия не умею как это делать :) Подскажите, или хотя бы подробно объясните. Буду весьма...

использование функций при замене элементов в квадратном массиве
Помогите,пожалуйста, с задачей.как с помощью функции поменять элементы главной диагонали с...

2
MadHatter
129 / 125 / 46
Регистрация: 15.06.2013
Сообщений: 873
12.05.2019, 14:15  [ТС] 2
Решил, вместо трейтов, вынести все эти вещи в отдельные классы. Но стала наблюдаться другая проблема. Пока классы находятся на одном уровне с тестами, все работает нормально. Но если рядом с тестами создать папку, например Tests\Feature\MyClasses, и вынести все классы туда, то начинают наблюдаться странные вещи. Тест почему-то публичные методы видит защищенными, не видит свойства класса. И как будто файлы в этой папке кешируются и даже переименование файла не вызывает ошибку что класс не найден. Cache:clear не помогает. Кто-нибудь сталкивался с похожими проблемами?
0
KPOT_KZ
10 / 10 / 1
Регистрация: 08.06.2011
Сообщений: 98
17.05.2019, 19:27 3
Судя по стектрейсу.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2019, 19:27

Использование функций и процедур при вычислении сложных формул
Доброго времени суток! Помогите пожалуйста разобраться, заранее простите за глупые вопросы....

Использование функций, найти max чисел при определенном условии
Администрация, это не повтор. Здравствуйте, дорогие программисты. Надеюсь вас не затруднит...

Использование конструкций, массивов, процедур и функций при разработке программ.
1. Определить локальную переменную s=0, далее s=s+x. Х вводит пользователь. Выводить результат до...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru