0

我收到以下错误:


1) RegistrationsController has an registration page load up successfully
     Failure/Error: response.code.should == 200
       expected: 200
            got: "404" (using ==)
     # ./spec/controllers/registrations_controller_spec.rb:6:in `block (2 levels) in '

从此代码:


require 'spec_helper'

describe RegistrationsController do
  it "has an registration page load up successfully" do
    get :new
    response.code.should == 200
  end
end

我可以在浏览器中成功访问该页面。

在我得到不可避免的“你不应该测试他们的代码”评论之前,我正在尝试测试我的自定义注册页面,这给了我同样的错误,所以我想我会检查 /register 页面的控制路线,这是我的登录页面。

关于为什么我没有得到 200 而是 404 的想法?调试提示?我可以发布任何你需要的帮助和感激。

4

1 回答 1

1

原来你在访问任何设计路由的测试中需要这个,因为它不使用路由器,或者 rspec 不使用或类似的东西......在这里


require 'spec_helper'

describe RegistrationsController do
  it "has an registration page load up successfully" do
    @request.env["devise.mapping"] = Devise.mappings[:user] #assuming your using :user routes
    get :new
    response.code.should == 200
  end
end

把它放在别的地方是不够的,但是当你在他们自己的路线上摇摆不定时,把它扔在那里。

于 2012-09-19T00:56:09.293 回答