使用OmniAuth (与omniauth_crowd),我希望用户被重定向回登录页面,如果他没有提交正确的用户名和密码。它在生产中工作得很好,但我在测试它时遇到了恼人的问题。
为了模拟OmniAuth提供程序,我使用了OmniAuth插件作者推荐的以下代码:
OmniAuth.config.test_mode = true
OmniAuth.config.mock_auth[:someProvider] = :invalid_credentials
visit_page @page
上面的代码自动(即不输入用户名和密码)将Capybara重定向到session#failure
。我的session#failure
重定向到login_path
。
因此,我在一个循环中结束:
redirected more than 5 times, check for infinite redirects. (Capybara::InfiniteRedirectError)
对于我的案例,最好的解决方法是什么?
发布于 2013-04-07 06:43:13
我在Omniauth上遇到了类似的问题。
不确定是否有解决方法,因为这是OmniAuth.config.mock_auth
的工作方式。
我的解决方案是使用fakeweb
而不是OmniAuth模拟。
您可能应该先看看omniauth_crowd本身是如何测试的。
https://stackoverflow.com/questions/15672427
复制相似问题