с использованием рельсов 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
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
все утверждения проходят так, что это хорошо, но, насколько я могу судить, сессия [: registration] не передается при публикации в "/ user".
в моем действии создания в контроллере 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".
Кажется, я не могу передать эту переменную сеанса при публикации. насколько я понимаю, в тесте "новая регистрация" все переменные сеанса остаются активными до тех пор, пока тест не закончился. я ошибаюсь, предполагая, что эта переменная сеанса должна быть опубликована? какие-либо предложения?