我在测试以下 Controller 代码时遇到问题:
def publish
if @article.publish
flash[:notice] = "Article '#{@article.title}' was published."
else
# This is not tested
flash[:error] = "Error publishing article."
end
redirect_to :action => :index
end
发布函数看起来像这样:
def publish
self.toggle!(:is_published)
end
函数 toggle!
是原子的,理论上只有当数据库出现问题时才会失败(实际上我可以找到许多应该检测到错误的场景,因为有人破坏了发布方法的实现).如何在 Cucumber 中测试在出现错误时是否显示正确的消息?
最佳答案
在这里,检查这些: http://blog.flame.org/2009/11/19/how-i-test-ruby-on-rails-with-rspec-and-cucumber
it "tells me to bugger off (not admin)" do
login_user
users = make_users
get :index
flash[:error].should match "You must be an administrator to access this page."
response.should redirect_to(root_path)
end
希望这有帮助:)
关于ruby-on-rails - Cucumber/RSpec 测试不可能的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2221441/