Как у меня есть негативный сценарий с огурцом в Rails? - PullRequest
1 голос
/ 10 октября 2009

У меня есть негативный сценарий для тестирования с огурцом. В частности, я хочу убедиться, что когда кто-то публикует URL с недействительным дескриптором, сайт возвращает ошибку.

Мой сценарий выглядит так:

Сценарий: создать человека со слишком короткой ручкой Когда человек по имени "Фред" с ручкой "tooshort" обновляется Тогда я должен получить ошибку 500

Мой шаг выглядит как

Когда / ^ персона с именем "(. )" с дескриптором "(. )" обновляет $ / do | name, handle | посетите "/ mobile / update? handle = # {udid} & name = # {name}"

Когда я запускаю сценарий, он никогда не попадает в ТОГДА часть из-за ошибки, когда

ОШИБКА: без дескриптора (RuntimeError)

Это ПРАВИЛЬНО, когда ошибка должна превратиться в 500.

Я просто не знаю, как сформулировать «Когда» как негативный тест Может быть, я должен использовать что-то другое, чем когда?

1 Ответ

1 голос
/ 11 октября 2009

Если для вас правильное поведение вашего шага «Когда» состоит в том, чтобы вызвать ошибку, вы используете лямбда-блок для перехвата этой ошибки RuntimeError:

When /^person named "(.)" with handle "(.)" updates$/ do |name, handle| 
  lambda { 
    visit "/mobile/update?handle=#{udid}&name=#{name}"
  }.should raise_error("No Handle")
end

Возможно, вам придется настроить часть lift_error, поскольку я не знаю точно, какую ошибку вы вызываете

И у вас может быть такой шаг, как этот (начальная точка)

Then /^the save should not be successful$/ do
  response.should be_nil
end
...