Ruby on rails rails集成测试和会话变量有问题
在这里使用rails 3.1。我在集成测试中遇到了一些会话变量问题Ruby on rails rails集成测试和会话变量有问题,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,在这里使用rails 3.1。我在集成测试中遇到了一些会话变量问题 test "new registration" do get "/user/sign_up?type=normal" assert_response :success assert_equal 'normal', session[:registration] assert_template "user_registrations/new" assert_difference('User.count', +1) do p
test "new registration" do
get "/user/sign_up?type=normal"
assert_response :success
assert_equal 'normal', session[:registration]
assert_template "user_registrations/new"
assert_difference('User.count', +1) do
post "/user", :user => {:email => "kjsdfkjksjdf@sdfsdf.com", :user_name => "lara", :password => "dfdfdfdfdfdf", :password_confirmation => "dfdfdfdfdfdf"}
end
assert_response :redirect
assert_template "user_registrations/new"
@user = User.find_by_user_name('lara')
assert_equal 'lara', @user.user_name
@user.confirm!
end
所有的断言都通过了,所以这很好,但是从我所知道的,当post to/user时,会话[:registration]没有通过
在用户注册控制器中的“我的创建”操作中:
if session[:registration] == "normal"
@user.role = "normal"
@user.status = "registering"
@user.save
else
@user.role = "fan"
@user.save
end
因此,当用户被创建时,@user.role=fan,它应该是@user.role=normal
当我发布时,我似乎无法让会话变量通过。据我所知,在新的注册测试中,只要测试没有结束,所有会话变量都保持活动状态。我认为应该发布会话变量是错误的吗?有什么建议吗 使用open_session do | sess |然后使用sess.post,因此您可能可以执行类似的操作