В некоторых из моих контроллеров у меня есть before_filter, который проверяет, вошел ли пользователь в систему? для действий CRUD.
application.rb
def logged_in?
unless current_user
redirect_to root_path
end
end
private
def current_user_session
return @current_user_session if defined?(@current_user_session)
@current_user_session = UserSession.find
end
def current_user
return @current_user if defined?(@current_user)
@current_user = current_user_session && current_user_session.record
end
Но теперь мои функциональные тесты не пройдены, потому что они перенаправлены в root. Поэтому мне нужен способ имитировать, что сеанс создан, но ничего из того, что я пробовал, не сработало. Вот то, что у меня есть сейчас, и тесты в значительной степени игнорируют это:
test_helper.rb
class ActionController::TestCase
setup :activate_authlogic
end
posts_controller_test.rb
class PostsControllerTest < ActionController::TestCase
setup do
UserSession.create(:username => "dmix", :password => "12345")
end
test "should get new" do
get :new
assert_response :success
end
Я что-то упустил?