典型的DEVISE创建帐户页面应重定向到新用户的欢迎页面
describe ArtistsController do
render_views
....
describe "Sign UP should redirect to welcome page" do
it "should redirect to welcome page on valid sign up", :js => true do
visit destroy_artist_session_path #just to be sure we're logged out
visit new_artist_registration_path
fill_in 'Email', :with => 'newguy@newguy.com'
fill_in 'Password', :with => 'password'
fill_in 'Password confirmation', :with => 'password'
click_link_or_button 'Sign up'
#save_and_open_page <-- reveals we are still on the sign-up page
page.should have_content("Welcome")
end
end
我在本地计算机上手动对此方案进行了QA测试,它运行正常。但测试似乎不起作用;它不会继续到欢迎页面。新用户不是在DB中创建的。水豚没有抱怨它无法找到按钮或任何东西。
我做错了什么?
答案 0 :(得分:1)
我遇到了同样的问题,它与子域名相关联。
会话密钥是“lvh.me”, 但是测试默认使用“example.com”。
我的测试是正确提交登录表单,用户通过身份验证没有问题,然后Devise重定向到“example.com”域中的主页,并且应用程序无法找到会话数据(在“lvh”下)。我是“密钥”,并且正在重定向回登录页面,没有任何flash消息或错误。
因此,如果您使用的是子域名,请务必在登录用户之前设置Capybara主机。仅举一例,我就是这样做的:
def go_to(subdomain)
Capybara.app_host = "http://#{subdomain}.lvh.me"
Capybara.server_port = 3000
host! "#{subdomain}.lvh.me:3000"
end
答案 1 :(得分:0)
您好像被重定向回登录页面。