2011-01-09 4 views
1

devise 및 선언적 권한 부여를 사용할 때 작동하는 기능 테스트를받는 데 지장이 있습니다. devise 테스트 도우미를 사용하여 사용자를 sign_in하면 current_user 변수가 컨트롤러에 채워집니다. 그러나 선언적 승인을 위해 post_with 테스트 도우미를 사용하자마자 current_user는 0이됩니다.작성 및 선언 권한 기능 테스트 문제

devise 및 선언적 인증을 함께 사용하는 경우 기능 테스트를 작성하는 방법에 대한 예제를 알려줄 수 있습니까?

감사합니다.

답변

1

나는 동일한 문제가있었습니다. devise 기능 테스트에서 post_with와 같은 선언적 인증 testhelper를 사용할 수 없습니다.

기능 테스트를 위해 sign_in 및 sign_out과 같은 devise testhelper를 사용하십시오. 나는 기능 테스트에 대한 유증 테스트 헬퍼 메소드를 사용하는 헬퍼를 작성했습니다

def test_with_user(user, &block) 
    begin 
    sign_in :user, users(user) 
    yield 
    ensure 
    sign_out :user 
    end 
end 

나는 다음과 같은 방법으로 사용이 헬퍼 : 도움이

test_with_user(:max) do 
    get :new 
    assert_response :success 
end 

희망.

+0

멋진 솔루션 덕분에 - 잘 작동합니다! –