2013-12-17 3 views
1

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

Так как я могу определить, что сценарий не выполнялся полностью, потому что он не прошел ИЛИ, потому что некоторые шаги не были реализованы/определены.

ответ

2

Способ использования. Значение по умолчанию - :skipped, сбой - :failed, а пройденный шаг - :passed. Таким образом, вы можете написать что-то вроде этого:

do sth if step.status != :passed 

Кроме того, если вы используете !step.passed? он делает то же самое, потому что он только проверяет :passed статус.

На эту тему вы также можете взглянуть на этот пост о записи демо ваших функций спецификации для ваших клиентов: http://multifaceted.io/2013/demo-feature-tests/

+0

Хорошо, но так как крючок AfterStep не вызывается, мне нужно использовать привязку After Script и цикл по всем шагам вправо? Но я знаю, как я могу получить доступ к шагам, когда сценарий является контуром (полученный параметр сценария не имеет метода «шагов») – LiohAu

+0

Когда я пытаюсь получить доступ к методу «шаги», я получаю следующую ошибку: private method «steps» 'вызван для # (NoMethodError) /Users/...features/support/hooks.rb:126:in 'After' – LiohAu

+0

2-я ссылка не работает. – slm

1

LiohAu, вы можете использовать метод «статус» по самому сценарию, а не по отдельным шагам. Попробуйте это: В крючками, добавьте

After do |scenario| 
    p scenario.status 
end 

Это даст статусы следующим образом: Любой шаг не выполняется/определена, она будет давать вам: не определено Сценарий не удается (когда определены все этапы): не удалось Сценарий проходит: прошло

Используя тот же самый крючок, он предоставит вам статус контура сценария, но для каждой строки примера (поскольку для каждой строки примера это индивидуальный сценарий). Поэтому, если вы хотите получить результат всего контура, вам нужно будет зафиксировать результат для всех строк примера и соответствующим образом вычислить конечный результат.

Надеюсь, это поможет.

Смежные вопросы