возникли проблемы с тестированием интеграции rails и переменными сеанса - PullRequest
1 голос
/ 30 декабря 2011

с использованием рельсов 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".

Кажется, я не могу передать эту переменную сеанса при публикации. насколько я понимаю, в тесте "новая регистрация" все переменные сеанса остаются активными до тех пор, пока тест не закончился. я ошибаюсь, предполагая, что эта переменная сеанса должна быть опубликована? какие-либо предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...