【发布时间】:2013-11-18 20:16:58
【问题描述】:
我写了这个场景来测试当用户访问一个未发布的条目时,他们会看到一个错误页面:
Scenario: Unpublished entry
Given there is an unpublished entry
When a user visits the entry page
Then he will see an error page
步骤
Given /^there is (?:an|one) unpublished entry$/ do
@entry = create(:entry, published: false)
end
When /^a user visits the entry page$/ do
visit entry_path(@entry)
end
Then(/^he will see an error page$/) do
expect(response).to raise_error(ActiveRecord::RecordNotFound)
end
运行测试时,它不会通过第二步,因为它失败并出现ActiveRecord::RecordNotFound 错误;这是我想要的,但它发生在错误的步骤上。
When a user visits the entry page # features/step_definitions/entry_steps.rb:17
Couldn't find Entry with id=93 [WHERE "entries"."published" = 't'] (ActiveRecord::RecordNotFound)
显然我做错了什么。如何编写场景以更好地表达我的意图,即“访问未发布的条目会引发错误”?
【问题讨论】:
标签: ruby-on-rails ruby testing cucumber