RSpec을 처음 사용하고 Devise가 작동하고 있다는 간단한 테스트를 작성하려고합니다. 임의의 페이지를 선택했으며 로그인하지 않은 사용자가/users/sign_in으로 리디렉션되었음을 보여주는 테스트를 작성하려고합니다.I18N의 기본 설계 사양
describe OrgsController do
describe "GET index when not logged in" do
it "redirects to new_user_session_path" do
user = FactoryGirl.create(:user)
user.confirm!
sign_in user
sign_out user
get :index
response.should redirect_to new_user_session_path
end
end
before(:each) do
user = FactoryGirl.create(:user)
user.confirm!
sign_in user
end
# remaining specs
end
나는 내 응용 프로그램 컨트롤러에 내가 국제화를 구현 한
"Expected response to be a redirect to <http://test.host/users/sign_in?locale=en> but was a redirect to <http://test.host/users/sign_in>."
를 얻을하고 있습니다
before_filter :set_i18n_locale_from_params
의 관점에서이 작업을 얻을 수있는 가장 좋은 방법은 무엇 :
-
을
- 일치하는 경로를 얻는 중?
- 이전 (: 각) 블록의 효과를 얻기 위해 사용자에게 서명하고 다시 서명하는 것에 대한 hackishness는?
- 전반적인 접근 방식은 무엇입니까?
시오 야마 - 완벽하게 작동했습니다. 많은 감사합니다. 패치를 config/initializers (http://stackoverflow.com/questions/3420680/monkey-patching-in-rails-3에 따라)에 새 파일에 넣었습니다. 다르게 적용했으면 알려주십시오. –
안녕하세요 기뻤습니다! spec/support /에 파일을 작성한 다음 features/support/custom_env.rb 파일에서 필 요가 오이 테스트에도 적용되도록 요구했습니다. 하지만 기본적으로 rspec에 의해로드 될 수있는 모든 위치에 넣을 수 있습니다. config/initializers에 대한 유일한 것은 당신이 어떤 조건으로 그것을 감싸지 않는 한, 그 파일들이 다른 모드에서도로드된다는 것입니다. 나는 테스트와 관련된 것들을 분리 된 채로 유지하는 것을 선호한다. –