我定义了一个在应用程序中工作的自定义路由,但出于某种原因在 rspec 中不工作。
/app/config/routes.rb
get '/signup', to: 'users#new', as: :signup
注册页面 View 文件具有“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
最佳答案
除非将其添加到 spec_helper.rb
Rspec.configure do |config|
config.include Rails.application.routes.url_helpers
...
end
关于ruby-on-rails - Rspec 测试 - 自定义路由路径导致 rspec "undefined local variable/method"无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21478384/