В тестах проекта очень много данных которые нужно вводить в поля. Подумав, как сделать правильнее (просто вынесение в константы, думаю будет не совсем правильно, так как же писал что Очень много данных). Решил разобраться с таким вариантом:
Создание csv файлов и внесение в него данных
Создание моделей в которых будут переменные, сеты и геты для них
и метод который будет парсить csv загонять его в модели, через сеты. Создание HashMap(Key, Model)
А потом в тестах просто указывать Model.get Что-то
Такой способ подсказал знакомый программист.
Может у вас будут какие-то предложение?
Это ужасное переусложнение! Не надо возводить всех этих многоэтажных конструкций. Оставьте константы. В конечном итоге строк получится меньше и код проще. Вынесение в файлы ничего не упростит.
Если данные легко группируются в сущности (типа инвойс 1, инвойс 2 и т.д.), то эксель вполне может стать выходом. Редактировать и, главное, создавать набор тестовых данных, если он не случаен, на порядок легче в экселе, чем через notepad.
Как вариант, рассмотрите xls формат. в Java, есть библиотечки, которые позволяют легко работать с данным форматом.
Если данные слабо структурированы - я бы рекомендовал посмотреть в сторону xml.
Предположим, есть тест, создающий 100 сущностей с указанными параметрами. Предположим, каждая сущность использует 10 параметров, 3 из которых обязательны, 7 - опциональны.
Если указывать параметры сущностей в csv, создание такого csv станет адом. Заполните 1000 значений через запятую, я хочу это увидеть.
Если использовать xls, в 1-й строке которого указать имена параметров - жить сразу станет проще, не так ли?
Hashmap удобен для хранения данных в приложении. Я говорю о внешнем тестовом наборе данных, используемом в data driven testing.
Предположим, я хочу быстро посмотреть, в скольких тестовых сущностях я использую параметр № 9, например и какие значения он принимает.
В экселе я это сделаю в 2 клика: отфильтрую список по данному параметру, а принимаемые значения я вообще увижу в списке допустимых значений для фильтра. Таким образом, если я знаю, что данный параметр может принимать 10 возможных значений, например, я легко узнаю, покрывает ли мой набор данных все возможные значения для данного параметра или нет.