如何在Rails中使用Cucumber产生负面情况?
我有一个负面的方案来测试黄瓜。 具体来说,我想确保当有人发布带有无效句柄的URL时,该站点会返回错误。
我的场景看起来像:
场景:创建一个句柄太短的人当名为“Fred”的人处理“tooshort”更新然后我应该得到一个500错误
我的步骤看起来像
当/ ^名为“(。 )”的人用句柄“(。 )”更新$ / do | name,handle | 访问“/ mobile / update?handle =#{udid}&name =#{name}”
当我运行场景时,由于来自When的错误,它永远不会到达THEN部分
错误:无句柄(RuntimeError)
这是正确的,何时应该转500错误。
我只是不知道如何将当时作为否定测试。 也许我应该使用不同于什么时候的东西?
如果您的步骤是正确的行为是引发错误,您使用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步骤(起点)
Then /^the save should not be successful$/ do response.should be_nil end