Упрощенный код будет выглядеть так:
Код: Выделить всё
//given config
purchase_configs.add(pc1);
purchase_configs.add(pc2);
sales_configs.add(sc1);
sales_configs.add(sc2);
// given data
input_value = ....
//given expected output
expected_value = ....
//when
result = calculate(purchase_configs, sales_configs, input_value)
//then
assertEquals(expected_value, result)
За исключением параметров, логика тестирования та же.
Проблема в том, что количество конфигураций покупок и продаж может различаться. Иногда это ПК1, ПК2, иногда только ПК1, иногда нет, иногда больше. То же самое и с продажами.
Я знаю, что могу написать несколько тестов — по одному на количество конфигураций, но это выглядит некрасиво.
Я знаю, что могу использовать @MethodSource и сгенерировать список переменных параметров, но тогда мне нужно написать весь код для анализа CSV/JSON или любого другого файла или иметь много кода Java для создания объектов вручную, а также, если возможно, я бы хотел внедрить только важные/значимые параметры, все остальные могут использовать некоторые параметры по умолчанию/вычисленные, чтобы не ухудшать читабельность.
Есть ли какой-нибудь умный способ использовать junit @ParameterizedTest для достижения цели который имеет один тестовый метод с параметрами и, если возможно, не требует самостоятельного создания читателей и парсеров файлов?
Подробнее здесь: https://stackoverflow.com/questions/769 ... ile-source