Rspec测试 - 自定义路径路径导致rspec无法识别“未定义的局部变量/方法”

时间:2014-01-31 10:59:08

标签: ruby-on-rails testing rspec

我定义了一个在应用程序中运行的自定义路由,但由于某种原因没有在rspec中。

/app/config/routes.rb

  get '/signup',   to: 'users#new',             as: :signup

注册页面视图文件具有“signup_path”链接,并且可以正常工作。 /app/views/users/new.html.rb

<% provide(:title, 'Sign Up') %>
<h1>Sign Up</h1>
<%= link_to "signup_path", signup_path %>

但在rspec中,使用此测试

require 'spec_helper'

describe "UserPages -" do

  subject { page }
  let(:base_title) { "Ruby on Rails Tutorial Sample App" }

  describe "Signup Page" do
    before { visit signup_path }

    it { should have_selector('h1', text: 'Sign Up') }
    it { should have_title(full_title('Sign Up')) }
  end

end

结果是测试失败,并且说

“signup_path是一个未定义的局部变量或方法”

我正在使用capybara 2.1.0

1 个答案:

答案 0 :(得分:1)

除非将其添加到spec_helper.rb

,否则无法从测试中访问命名路由
Rspec.configure do |config|
  config.include Rails.application.routes.url_helpers
  ...
end