Хранение стринговых значений в csv файлах

В тестах проекта очень много данных которые нужно вводить в поля. Подумав, как сделать правильнее (просто вынесение в константы, думаю будет не совсем правильно, так как же писал что Очень много данных). Решил разобраться с таким вариантом:

  1. Создание csv файлов и внесение в него данных
  2. Создание моделей в которых будут переменные, сеты и геты для них
  3. и метод который будет парсить csv загонять его в модели, через сеты. Создание HashMap(Key, Model)
    А потом в тестах просто указывать Model.get Что-то
    Такой способ подсказал знакомый программист.
    Может у вас будут какие-то предложение?

Можете использовать для этого DataProvider, в котором будете извлекать из csv информацию в нужном виде.

Если используется TestNG, можно и DataProvider.

DB + Models + DataProvider?
Саппорт csv-файлов разных версий вскоре превратится в ад.

Это ужасное переусложнение! Не надо возводить всех этих многоэтажных конструкций. Оставьте константы. В конечном итоге строк получится меньше и код проще. Вынесение в файлы ничего не упростит.

http://www.slideshare.net/orgeirIngvarsson?utm_campaign=profiletracking&utm_medium=sssite&utm_source=ssslideview

3 лайка

Если данные легко группируются в сущности (типа инвойс 1, инвойс 2 и т.д.), то эксель вполне может стать выходом. Редактировать и, главное, создавать набор тестовых данных, если он не случаен, на порядок легче в экселе, чем через notepad.
Как вариант, рассмотрите xls формат. в Java, есть библиотечки, которые позволяют легко работать с данным форматом.
Если данные слабо структурированы - я бы рекомендовал посмотреть в сторону xml.

Зачем изобретать велосипед?

Проще редактировать.

Проще чем что? Чем отличается открытие файла в IDE и экселя, кроме как неудобной поддержки и лишнего установленного софта?

Спасибо. Я уже одумался. Просто храню в константах.

1 лайк

Предположим, есть тест, создающий 100 сущностей с указанными параметрами. Предположим, каждая сущность использует 10 параметров, 3 из которых обязательны, 7 - опциональны.
Если указывать параметры сущностей в csv, создание такого csv станет адом. Заполните 1000 значений через запятую, я хочу это увидеть.
Если использовать xls, в 1-й строке которого указать имена параметров - жить сразу станет проще, не так ли?

А почему тогда не использовать hashmap или что-то подобное ?

Hashmap удобен для хранения данных в приложении. Я говорю о внешнем тестовом наборе данных, используемом в data driven testing.
Предположим, я хочу быстро посмотреть, в скольких тестовых сущностях я использую параметр № 9, например и какие значения он принимает.
В экселе я это сделаю в 2 клика: отфильтрую список по данному параметру, а принимаемые значения я вообще увижу в списке допустимых значений для фильтра. Таким образом, если я знаю, что данный параметр может принимать 10 возможных значений, например, я легко узнаю, покрывает ли мой набор данных все возможные значения для данного параметра или нет.