Я не могу заставить мои тесты работать, и мне было интересно, есть ли у кого-нибудь указатели.Я тестирую свою страницу редактирования пользователя так, что вам необходимо войти в систему, чтобы иметь возможность просматривать и редактировать профиль пользователя.После аутентичной документации, вот соответствующие коды:
class ApplicationController < ActionController::Base
helper_method :current_user_session, :current_user
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.user
end
def require_current_user
unless current_user
flash[:error] = 'You must be logged in'
redirect_to sign_in_path
end
end
end
class UsersController < ApplicationController
before_filter :require_current_user, :only => [:edit, :update]
...
end
В моем users_controller_spec
describe "GET 'edit'" do
before(:each) do
@user = Factory(:user)
UserSession.create(@user)
end
it "should be successful" do
# test for /users/id/edit
get :edit, :id => @user.id
response.should be_success
end
я протестировал его с помощью браузера, и он работает.Вы должны войти в систему, чтобы иметь возможность редактировать свой профиль, но он не работает в моем тесте rspec.
У меня такое ощущение, что это как-то связано с mock controller , но яне могу понять, как.Я также прочитал контрольный пример , но все еще не могу заставить его работать.
Пожалуйста, помогите и большое спасибо !!!