首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rails 4 api rspec测试http状态代码410

rails 4 api rspec测试http状态代码410
EN

Stack Overflow用户
提问于 2014-06-13 04:20:46
回答 1查看 934关注 0票数 1

我正在尝试构建正确的rspec测试,以验证我的410状态代码处理程序是否工作。下面是路由捕获的所有内容:

代码语言:javascript
复制
match '*not_found', to: 'error#error_404', via: :all

我的简单错误控制器:

代码语言:javascript
复制
class ErrorController < ApplicationController

  def error_404
    head status: 410
  end

end

我现在的rspec:

代码语言:javascript
复制
require 'spec_helper'

describe ErrorController do

  context "Method #error_404 handling missing routes =>" do
    it "Should have the 410 status code.." do
      get :error_404
      expect(response.status).to be(410)
    end
  end

end

Rspec错误消息:

代码语言:javascript
复制
  1) ErrorController Method #error_404 handling missing routes => Should have the 410 status code..
     Failure/Error: get :error_404
     ActionController::UrlGenerationError:
       No route matches {:action=>"error_404", :controller=>"error"}
     # ./spec/controllers/error_controller_spec.rb:7:in `block (3 levels) in <top (required)>'

对如何通过这个考试有什么想法吗?我知道这条路是不存在的,但是我很难用get来使它工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-13 04:36:58

我想知道这里是否有人有更好的主意……但是,我就是这样解决的:

首先我安装了水豚

然后,我调整了路线,使之更具描述性:

代码语言:javascript
复制
match '*not_found', to: 'error#error_status_410', via: :all

然后我调整了错误控制器:

代码语言:javascript
复制
class ErrorController < ApplicationController

  def error_status_410
    head status: 410
  end

end

最后,我调整了错误控制器规范:

代码语言:javascript
复制
require 'spec_helper'

describe ErrorController do

  context "Method #error_status_410 handling missing routes =>" do
    it "Should have the 410 status code.." do
      visit '/will-never-be-a-route'
      page.status_code == 410
    end
  end

end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24197661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档