我有一个负面的方案来测试黄瓜。具体来说,我想确保当有人发布带有无效句柄的URL时,该站点会返回错误。
我的方案如下:
场景:创建一个句柄太短的人 当名为“弗雷德”的人用句柄“tooshort”更新 然后我应该得到500错误
我的步骤看起来像
当/ ^名为“(。)”的人用句柄“(。)”更新$ / do | name,handle | 访问“/ mobile / update?handle =#{udid}& name =#{name}”
当我运行场景时,由于来自
的错误,它永远不会到达那个部分错误:无句柄(RuntimeError)
这是正确的,何时应该转500错误。
我只是不知道该如何将其作为否定测试。也许我应该使用不同于什么时候的东西?
答案 0 :(得分:1)
如果您的步骤是正确的行为是引发错误,您使用lambda块来捕获此RuntimeError:
When /^person named "(.)" with handle "(.)" updates$/ do |name, handle|
lambda {
visit "/mobile/update?handle=#{udid}&name=#{name}"
}.should raise_error("No Handle")
end
您可能需要调整raise_error部分,因为我不确切地知道您正在提出的错误类型
你可以像这样一个步骤(起点)
Then /^the save should not be successful$/ do
response.should be_nil
end