Вызов другого сценария, поскольку он удовлетворяет предварительным условиям текущего сценария, нарушает изоляцию, необходимую для того, чтобы каждый сценарий мог работать самостоятельно. Ни один сценарий не должен полагаться на какой-либо другой сценарий.
Вместо копирования и вставки шагов из первого сценария напишите короткий шаг Given
, который выполняет те же действия, что и первый сценарий.
Судя по названию сценария, создайте шаг Given
, похожий на:
Scenario Outline: Add a new Ticket
# New 'Given' step that basically does the same thing as scenario #1
Given user performed a quick search for account <AccountID>
# Now continue on with the rest of the scenario
When User click on Add New link on Ticket Section
And Select the <Departmnet> and <SubTeam> from the list
And Enter the <Subject> of the ticket
And Select the <Product>
And Select the <TicketCategory> and <TicketSubCategory>
And Enter the <Comments> and <PersonSpokeTo>
And Click on Finish
Then A new Ticket is created
Examples:
| AccountID | Department | SubTeam | Subject | Product | TicketCategory | TicketSubCategory | Comments |
| 116999 | Customer Services | ContractEnquiry | Test Ticket | Home Insurance | Account Management | Customer Zone | Test Comments |
Реализация этого шага будет зависеть от архитектуры ваших тестов, но этот шаг должен:
- Go на URL-адрес CRM
- Выберите AccountId в быстром поиске
- Введите указанный идентификатор аккаунта в поле поиска
- Нажмите кнопку быстрого поиска
- Закройте оповещения при появлении
Если вы обнаружите, что пишете код, который, кажется, существует в других ваших шагах, рассмотрите возможность рефакторинга вашего кода в Модели страниц , а затем инициализируйте эти модели страниц и вызов методов на них из ваших определений шагов. Базовый c контроль потока вашего теста будет go:
Feature file --> Step definition --> Page model --> Selenium --> Web browser