Я должен написать тест BDD, используя cucumber с java, и я хотел бы проанализировать список целых чисел из каждой строки моей таблицы примеров и передать этот список моему методу step, используя последнюю версию cucumber (4.2.6).Итак, я получил следующее определение шага в моем файле функций:
Scenario Outline: Some scenarion
Given a list of integer: <integer_list>
Examples:
| integer_list |
| 2, 3, 5, 6 |
| 3, 12, 45, 5, 6|
И мне нужно что-то подобное в моем коде:
@Given("a list of integer: (\\d+.)")
public void storeIntegerList(List<Integer> integers) {
System.out.println(integers.size());
}
К сожалению, я не могу найти способобработать парсинг этих значений в список.Он либо не находит метод step (я пробовал много разных регулярных выражений), либо выдает исключение, в котором сообщается, что мои числа не могут быть преобразованы в список.
В качестве обходного пути я анализирую список как строку, а затем разделяю его.Однако я не могу себе представить, что в 2019 году нет лучшего способа сделать это.
Обходной путь:
Scenario Outline: Some scenarion
Given a list of integer: "<integer_list>"
Examples:
| integer_list |
| 2, 3, 5, 6 |
| 3, 12, 45, 5, 6|
@Given("a list of integer: {string}")
public void storeIntegerList(String integers) {
List<String> integersAsString = Arrays.asList(integers.split(","));
List<Integer> integerList = integersAsString.stream().map(s -> Integer.valueOf(s.trim())).collect(Collectors.toList());
System.out.println(integerList.size());
}