Дайте вашей коллекции данных имя. Допустим, это налоговая форма. Вместо того, чтобы позволить вашим функциям определять, КАК эта форма заполнена, просто поговорите о КОГДА форма заполнена и позвольте приведенному ниже коду иметь дело с деталями
Таким образом, вы бы сделали шаг
When I fill in my tax form
и реализовать его как
When "I fill in my tax form" do
fill_in_tax_form
end
и теперь создайте вспомогательный метод для заполнения налога с
module TaxFormStepHelper
def fill_in_form
end
end
Теперь, когда вы на самом деле заполняете форму языком программирования, вы можете делать всякие классные вещи, чтобы сделать это намного проще. Например, один из моих шагов, который заполняет мастера, использует следующий метод
def fill_in_electric_meter_details
fill_in_common_meter_details
# 'debt_clearance_meter_serial_number' is prepopulated from property
fill_in 'debt_clearance_screen_a', with: 'a'
fill_in 'debt_clearance_screen_b', with: 'b'
fill_in 'debt_clearance_screen_f', with: 'f'
fill_in 'debt_clearance_screen_g', with: 'g'
end
Путем внедрения реализации того, как вы заполняете форму, в тестовый код более низкого уровня, вы значительно упрощаете работу, и в то же время они становятся намного более мощными.
Если вы хотите иметь дело с грустными путями, вы можете сделать что-то вроде
When I fill in my tax form
And my employment status is not correct
Then ...
When
заполняет форму как обычно
And
перезаписывает статус занятости, поэтому его неверно
Абсолютно не нужно использовать большие таблицы примеров при просмотре. Все, что вы достигаете, делая это, делает ваши функции намного труднее читать, а ваши определения шагов - намного труднее писать.
Надеюсь, это пригодится вам:)