0

我有一个控制器,它需要一个名为的参数controller,而我编写的 RSpec 测试似乎不喜欢我将它作为参数传递给get.

规格

require 'spec_helper'

describe PageHelpsController do

  describe 'GET :search' do

    it "returns" do
      get :search, { :controller => 'employer', :action => 'edit', :edition => 'usa', :anchor => 'collaborator' }
      response.status.should be_success
      response.should render_template(:partial => 'shared/page_help')
    end
  end

end

错误

vagrant@debian-squeeze64:/vagrant$ bundle exec rspec spec/controllers/page_helps_controller_spec.rb 
F

Failures:

  1) PageHelpsController GET :search returns
     Failure/Error: Unable to find /vagrant/spec/controllers/page_helps_controller_spec.rb to read failed line
     ActionController::RoutingError:
       No route matches {:controller=>"employer", :action=>"search", :relative_url_root=>nil, :edition=>"usa"}
     # ./spec/controllers/page_helps_controller_spec.rb:11
4

1 回答 1

1

假设您创建了一个名为controller.

问题是您通过创建一个名为controller. 假设有一个名为的控制器Employer当然不存在。这就是您收到路线错误的原因。要解决此问题,您必须将名为的参数更改为controller其他名称。

于 2012-12-14T08:06:14.457 回答