Cucumber разработан так, что вы не можете связать сценарии или файлы объектов вместе. Каждый сценарий должен выполняться как независимый «тест», который начинается с начала.
Программирование с помощью файлов объектов - это ужасный анти-паттерн. Вместо этого перенесите программирование в слой определения шагов, или, что еще лучше, в помощников, которые используют определения шагов.
Если вы хотите извлечь максимум пользы от огурца, вам нужно использовать его, чтобы выразить только то, ЧТО делается, и ПОЧЕМУ это важно. Из вашего примера это похоже на то, как учителя заполняют свои расписания, поэтому ваши сценарии должны быть такими, как
Scenario: Fill in timesheet
Given I am a teacher
And I am logged in
When I fill in my timesheet
Then I should see my timesheet has been saved.
Вы устанавливаете состояние в вашем Givens и создаете вспомогательные методы для каждого создаваемого сценария, чтобы в будущих сценариях можно было легко настроить состояние. Например Given I am a teacher
может быть что-то вроде
def 'Given I am a teacher' do
teacher = create_new_teacher;
register_teacher(teacher)
return teacher
end
Что основывается на предыдущих сценариях регистрации новых учителей. Если вы следуете этому шаблону, у вас могут быть простые сценарии с одним данным, которые выполняют огромные объемы установки, используя только один вызов метода. Это намного лучше, чем связывать несколько файлов функций вместе!