我定义了一个在应用程序中运行的自定义路由,但由于某种原因没有在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
答案 0 :(得分:1)
除非将其添加到spec_helper.rb
Rspec.configure do |config|
config.include Rails.application.routes.url_helpers
...
end