Cucumber - Javascript вызывает определения шагов входа перед другими определениями шагов
Используя Chimp.js, Cucumberjs и WebdriverIO, я пытаюсь запустить определения шагов входа в систему в экземпляре браузера перед другими определениями шагов, которые зависят от пользователя, который должен войти в систему. И, возможно, без добавления их в Background
снова и снова для каждого файла объектов.
Это возможно? Я довольно новичок в Wedbdriver.io и Cucumber, и любой совет будет очень полезен. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.
1 ответ
Лично я не думаю, что это хорошая идея. Для входа в систему необходимо указать "кто" является пользователем. Позже, когда ваше приложение станет более сложным, у вас могут возникнуть взаимодействия между разными пользователями. Скрывать все это от сценария нехорошо.
Что вы можете сделать, так это объединить пользовательскую спецификацию и логин за один шаг, например
Given I am logged in as an admin
Given Fred is logged in as a sales executive
и т.п.
Если вы хорошо разбираетесь в том, как вы реализуете эти шаги, вы можете держать вещи довольно сухо, извлекая вспомогательные методы из определений шагов и используя глобальные переменные для хранения людей, например
Given 'I am logged in as an admin' do
@i = create_user role: admin
login as: admin, user: @i
и повторно использовать эти методы в других шагах входа в систему.
Если вы хорошо организовываете свои функции, вы можете справиться со многими из этих вызовов, например:
Feature: Basic admin ops
Background:
Given I am logged in as an admin
Scenario: I can foo
When I foo
Scenario: I can bar
When I bar
Несколько заключительных мыслей...
Каждый сценарий призван стимулировать определенный этап развития. По сравнению с работой по разработке написания "Учитывая, что я вошел в систему" тривиально.
Когда что-то идет не так, зная, что вы должны войти в систему, является важной частью информации.