Ruby on rails 在Rails 4中,如何测试和设计自定义注册路径?
我定制了Ruby on rails 在Rails 4中,如何测试和设计自定义注册路径?,ruby-on-rails,ruby,ruby-on-rails-4,devise,Ruby On Rails,Ruby,Ruby On Rails 4,Devise,我定制了设计路径,如下所示: devise_for :users, path: '', path_names: { sign_in: 'signin', sign_out: 'signout', password: 'secret', confirmation: 'verification', unlock: 'unblock', registration: 'signup', sign_up: 'new' } 例如,它使用户注册路径如下http://localhost:3000/signup
设计路径,如下所示:
devise_for :users, path: '', path_names: { sign_in: 'signin', sign_out: 'signout', password: 'secret', confirmation: 'verification', unlock: 'unblock', registration: 'signup', sign_up: 'new' }
例如,它使用户注册路径如下http://localhost:3000/signup/new
。现在的问题是,我不知道如何测试这个页面。以下是针对用户和控制器的测试:
require 'test_helper'
class UsersControllerTest < ActionController::TestCase
test "should get signup" do
get :signup_new
assert_response :success
assert_select "title", "SignUp | #{Figaro.env.app_name}"
end
end
需要“测试助手”
类UsersControllerTest
如何在我的测试文件中访问这些自定义路径?您可能测试了错误的控制器。检查您的路由(rake路由
),查看分配了哪个控制器来处理您的设计验证路由。默认情况下,我相信它是designe::sessioncontroller
我不认为这是你的意图,但值得一提的是,你不应该测试设计宝石
注意,对ActionController::TestCase的请求是模拟的。如果您想测试真正的请求,那么您应该研究集成测试。可以找到一个简要概述
更新
查看Desive gem中有关如何登录用户的一些示例。请注意,include designe::TestHelpers
添加在测试类顶部附近,该类在
方法中添加了一个sign\u。好的,那么在用户的控制器中,我如何在测试中登录用户?即使我在错误的控制器,我应该能够访问该页面的权利?在设计指南中,它告诉我们如何使用水豚进行测试。但我并没有使用它或Rspec。我也偶然发现了这一点,它显示了如何直接使用Warden登录用户(Desive在封面下使用Warden)。