- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图为一个简单的 api 编写一些快速路由测试,所以我写道:
it "delete" do
delete("/api/notifications/:id").should_not be_routable
end
但是我收到了:
Failure/Error: delete("/api/notifications/:id").should_not be_routable
expected {:delete=>"/api/notifications/:id"} not to be routable, but it routes to {:controller=>"application", :action=>"rescue404", :a=>"api/notifications/:id"}
我很快意识到我正在从 404 中解救出来,所以几乎所有东西都是可路由的。
unless Rails.env.development?
rescue_from NotFound, :with => :rescue404
rescue_from ActiveRecord::RecordNotFound, :with => :rescue404
rescue_from ActionController::RoutingError, :with => :rescue404
end
def rescue404
respond_to do |format|
format.json { render :text => 'Something went wrong. Record not found or url is incorrect.\n' }
format.xml { render :text => 'Something went wrong. Record not found or url is incorrect.\n' }
format.html { redirect_to root_url, :alert => 'That page does not exist, sorry bro!' }
end
end
这让我可以进行测试:
it "delete" do
delete("/api/notifications/:id").should route_to("application#rescue404", :a => "api/notifications/:id")
end
用这种方式写对我来说很容易出错,因为我经常把 ':a =>' 弄错。有什么方法可以测试是否正在挽救异常?
这个有效:
it "delete" do
delete("/api/notifications/:id").should raise_error()
end
...但是我应该检查什么错误?还是我应该就此打住?
最佳答案
你可以改变你的救援。变化:
unless Rails.env.development?
到:
if Rails.env.production?
这应该将测试环境排除在您的 rescue404 行为之外。
关于ruby-on-rails-3 - 我如何使用 rspec 来测试正在救援和重定向的路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8229971/
我有以下代码: try do IO.inspect("start task") t = Task.async(fn -> Process.sleep(7000) end) IO.insp
问题与 radis-rb gem 有关。 异常没有被我的救援 block 捕捉到,我的应用程序崩溃了。 我的代码: begin redis = Redis.new puts "WTF?" re
我的 Rakefile 中有许多文件任务,它们看起来像 file 'task1' => 'dep' do sh "some command" end 还有 task :start => :next
我有一个自定义 Rakefile,它调用不同的 file 任务。有时预期的文件不存在,并且 rake 抛出 RuntimeError 并失败。但是,我想在它失败之前做一些事情。那么有什么方法可以挽救
这对我来说似乎没问题,我找不到任何其他说明的文件,但我希望它得到验证。我有一段代码可能会失败,无论出于何种原因,如果它确实失败,请确保在它之后保护它,然后无论发生什么都需要执行一些代码。这似乎需要一个
使用 Action 邮件发送电子邮件时,我们遇到了生产问题。 NameError undefined local variable or method `to_ary' for # Did you m
我有这个创建方法: def create ... grid = Tag.find_by_id(story[:tag_id]) or raise GridNotFoundError
我正在学习 ZetCode 上非常棒的 SLite & Ruby 教程并遇到了一个愚蠢的问题。这到底是怎么回事? rescue SQLite3::Exception => e puts "Ex
如何捕获 ctrl-break 组合键引发的异常?我在 Windows 上运行一个 ruby 程序(在 cmd.exe 内),我用这样的东西捕获 ctrl-c : rescue Interrupt
背景 两者 try/rescue和 try/catch是 Elixir 中的错误处理技术。根据 corresponding chapter在介绍指南中。 Errors can be rescued u
我在 Rails 应用程序上安装了 Airbrake。但是,我还想在 500 发生时执行一些其他操作。如何在不干扰 Airbrake 的情况下挽救 500 个错误? 最佳答案 在 Applicatio
我有一个与这段代码相当的情况: i=0 def add_one(i) i+=1 puts "FUNCTION:#{i}" end begin puts "BEGIN:#{i}" rai
我一直在尝试在 Rails 应用程序中实现以下功能,但它似乎什么也没做: rescue Twilio::REST::RequestError => e puts e.message 我注意到它
用户只能编辑自己的帖子,因此我使用以下代码来检查用户是否可以进入编辑表单: def edit @post = Load.find(:first, :conditions => { :use
在尝试解析数组、AR 模型导入等时,CSV 文件有问题似乎是一个常见问题。除了在 MS Excel 中打开并另存为 之外,我还没有找到有效的解决方案> 每天(还不够好!)。 在一个 60,000 行的
我最近使用 Debian Wheezy 双启动了一台 Windows PC。安装顺利,没有错误,但是当我启动到 Debian 时,我立即收到 GRUB 救援: Welcome to GRUB! err
我已按照说明安装 resque,但现在当我尝试使用此命令生成 worker 时,出现连接错误: $ QUEUE=mailer rake environment resque:work --trace
我是一名优秀的程序员,十分优秀!