ruby-on-rails – 使用RESTful Authentication插件进行Ruby on R
发布时间:2020-12-17 01:19:27 所属栏目:百科 来源:网络整理
导读:我今天开始为我的rails应用程序编写功能测试.我使用RESTful身份验证插件.我遇到了一些令人困惑的事情,我希望有人可以为我澄清. 1)我写了一个快速登录功能,因为我的rails应用程序中的大多数功能都需要身份验证. def login_as(user) @request.session[:user_id
我今天开始为我的rails应用程序编写功能测试.我使用RESTful身份验证插件.我遇到了一些令人困惑的事情,我希望有人可以为我澄清.
1)我写了一个快速登录功能,因为我的rails应用程序中的大多数功能都需要身份验证. def login_as(user) @request.session[:user_id] = user ? user.id : nil end 我看到这个函数的问题,它基本上是伪造的身份验证.我应该担心这个吗?也许只要我在某处测试真正的身份验证方法就可以走这条路.或者这可能是一种糟糕的做法. 2)第二个令人困惑的事情是,在我的功能测试的某些地方,我需要完整的身份验证过程.当用户被激活时,我有do_activate方法为用户创建一些初始对象.它类似于为学生应用程序创建空白笔记本对象和笔对象,如果这是有意义的. 因此,为了正确测试我的应用程序,我需要用户点击该激活状态,以便创建这些对象.我目前正在使用Factory Girl创建用户,然后调用上面的login_as函数来伪造身份验证. 我想另一种选择是跳过完整的身份验证序列,然后用Factory Girl创建空白对象.我可以在其他地方测试正确的身份验证. 你怎么看?如果我应该通过正确的顺序,为什么下面的代码不是调用do_activate函数? user = Factory.create(:user) user.active = 1 user.save 谢谢! 解决方法
伪造它是完全可以接受的.
但是,请编写其他测试以确保受保护的内容受到保护.所以 test "it should show the profile page" do user = Factory(:user) login_as(user) get :show,:id => user assert_response :success end test "it should not show the profile page cos I'm not logged in" do user = Factory(:user) get :show,:id => user assert_response :redirect end 随意打电话给我跟进! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |