Rspec 选中“记住我”复选框后,测试用户是否仍然永久连接
我试图用rspec和capybara测试登录表单,如果用户选中Rspec 选中“记住我”复选框后,测试用户是否仍然永久连接,rspec,capybara,Rspec,Capybara,我试图用rspec和capybara测试登录表单,如果用户选中记住我复选框,然后关闭浏览器并再次打开,他仍然连接,我的测试如下: it "still connected if remember me is checked" do user = FactoryGirl.create(:user) fill_in "Email", with: user.email fill_in "Password", with: user.password check "Remem
记住我
复选框,然后关闭浏览器并再次打开,他仍然连接,我的测试如下:
it "still connected if remember me is checked" do
user = FactoryGirl.create(:user)
fill_in "Email", with: user.email
fill_in "Password", with: user.password
check "Remember me"
click_button submit
page.should have_link("sign out", signout_path)
# here i should do something to close the browser
visit signin_path
page.should have_link("Sign out", signout_path)
end
我正在搜索如何使用capybara关闭浏览器,但任何解决方案都适用于我,有一种简单的方法可以做到这一点?您实际上不需要关闭浏览器来删除会话。在测试中,您可以让服务器清除它
it "still connected if remember me is checked" do
user = FactoryGirl.create(:user)
fill_in "Email", with: user.email
fill_in "Password", with: user.password
check "Remember me"
click_button submit
page.should have_link("sign out", signout_path)
controller.reset_session
visit signin_path
page.should have_link("Sign out", signout_path)
end
实际上,你需要的是一个gem呼叫。有一个名为
expire\u cookies
的方法,可以模拟关闭浏览器和打开浏览器的操作
因此,对于您来说,场景:
it "still connected if remember me is checked" do
user = FactoryGirl.create(:user)
fill_in "Email", with: user.email
fill_in "Password", with: user.password
check "Remember me"
click_button submit
page.should have_link("sign out", signout_path)
# here i should do something to close the browser
expire_cookies
visit signin_path
page.should have_link("Sign out", signout_path)
end
这个答案不适合你?它给了我一个错误:Capybara::NotSupportedByDriverError:Capybara::Driver::Base#execute(执行)脚本您是否使用诸如
Capybara webkit
之类的JavaScript驱动程序,并且是否设置了:js=>true
参数?哦,不,我没有用这个,我会尝试它可能的副本