Если вам действительно нужно работать со сценарием с примерами из CSV или Excel, вот способ сделать это.
Назовите свои примеры, в идеале с именем, понятным бизнесу.
Напишите один сценарий, использующий это имя — не используйте схему сценария.
Получите шаг, чтобы выполнить всю работу, чтобы получить Excel и примеры, используя имя, чтобы указать шаг, чтобы получить правильные примеры.
Давайте рассмотрим это с помощью простого списка футбольных команд в английской премьер-лиге и предположим, что вам нужно получить их динамически из электронной таблицы Excel.
Scenario: Commpile statistics for premier league teams
Given I am working with the premier league
When I compile teams statistics
Then I should see team statistics
And there should be no errors
Чтобы это работало, мы должны переместить все детали из сценариев в определения шагов и, в идеале, вспомогательные методы для этих определений шагов. Таким образом, мы получаем что-то вроде
Given "I am working with the premier league" do
@teams = load_premier_league_teams
end
а затем вспомогательный метод
def load_premier_league_teams
get_the_teams_from_the_spreadsheet
end
Теперь все, что касается работы с электронными таблицами, выполняется вне Cucumber и на вашем языке программирования.
Затем на этапе «Когда» вы можете выполнить свою операцию для каждой из команд следующим образом.
When "I compile the teams statistics" do
@results = compile_statistics(@teams)
end
и напишите еще один вспомогательный метод
def compile_statistics(teams)
results = []
teams.each do |t|
results << compile_team_stats(t)
...
end
Мы снова выталкиваем все детали того, как мы делаем вещи, из Cucumber.
Вы можете сделать то же самое для шага «Не должно быть ошибок», перебирая результаты с помощью переменной @results и собирая все ошибки.
Cucumber — это просто не инструмент для программирования. С помощью этой техники вы все еще можете использовать ее для запуска чего угодно, сохраняя при этом ваш сценарий простым и очень быстрым.
person
diabolist
schedule
11.04.2018