BDD - огурец: возможно ли отключить фоновую логику только для одного сценария в функции? - PullRequest
3 голосов
/ 28 марта 2012

В файле объектов есть фон и несколько сценариев, но теперь нужен сценарий, связанный с той же функцией, которая не должна запускать фоновую логику, возможно ли отключить только сценарий?

ОБНОВЛЕНИЕ - Добавить пример:

Feature: Sign Up

  In order to access to protected parts of site
  A user
  Should sign up

  Background:
     Given I am on sign up page
     And I am not logged in

  Scenario: User sign up succesfully
    When I sign up with valid fields
    Then I should view dashboard page 

  Scenario: User altredy sign up
    When I sign up with altredy registred user e-mail
    Then I should view altredy sign up message and link to forgot password page

  Scenario: User try to sign up with missing/wrong data
    When I will try to sign up with missing/wrong data
    Then I should error message

  Scenario: User altredy sign in
    #here disable background
    Given I am logged in
    When I am on sign up page
    Then i should be redirect to dashboard page

Ответы [ 3 ]

1 голос
/ 10 апреля 2012

Я бы полностью избавился от предложения фона - это ненужные детали. Ваши сценарии имеют смысл без него.

Вы можете посетить страницу регистрации и убедиться, что пользователь еще не вошел в систему в рамках определения шага «Когда я регистрируюсь с действительными полями».

0 голосов
/ 10 августа 2017

Почему бы вам не создать определение шага, которое закрывает этот сеанс?что-то вроде этого:

 Then(/^I close the browser$/) do
   page.driver.quit
 end

Затем вы делаете все, что вам нужно в ваших последующих шагах

0 голосов
/ 04 марта 2015

Решение 1.

Вы можете поместить этот сценарий только в другой файл Feature, если фон отсутствует или имеет собственный фон

Решение 2.

Удалите фон из файла объектов, а затем поместите его логику в определения шагов, что-то вроде

Given 'I am on sign up page' do
    some code here
end

Given 'I am not logged in' do
    some code here
end

затем на каждом первом шаге

Given 'I sign up with valid fields' do
    step 'I am on sign up page'
    step 'I am not logged in'
    the rest of your code for this step
end

Given 'I sign up with altredy registred user e-mail' do
    step 'I am on sign up page'
    step 'I am not logged in'
    the rest of your code for this step
end

Given 'I will try to sign up with missing/wrong data' do
    step 'I am on sign up page'
    step 'I am not logged in'
    the rest of your code for this step
end

Это не красиво, хотя вы бы повторили это по крайней мере 3 раза.

Решение 3.

Вы можете избавиться от этого сценария и вставить его шаги в первый сценарий, что-то вроде

Scenario: User sign up succesfully
    When I sign up with valid fields
    Then I should view dashboard page    #this is your Given I am logged in step
    When I am on sign up page
    Then i should be redirect to dashboard page
...