2011-04-05 2 views
0

모델 보안을 위해 declarative_authorization을 사용하는 앱에서 작업하고 있으며 조명기를 구성하고 있으며 인증 프레임 워크를 통과하지 못하도록 테스트가 많이 있습니다. 현재 아래의 코드 스 니펫과 같은 것을 사용하고 있습니다. 그러나 이것은 꽤 일반적인 작업이 될 것이므로 동일한 목표를 달성하는 데 더 낫고 간결한 방법이 있는지 궁금합니다.보다 간단한 사용법 without_access_control

def disable_auth(code, *args) 
    without_access_control do 
    return code.call(*args) 
    end 
end 

get :index, :product_id => disable_auth(lambda { Factory(:product) }) 
+0

Ruby on Rails 인 경우 질문에 'ruby-on-rails' 태그를 넣어야합니다. (그것이 맞는지 아닌지 잘 모르겠다.) – Phrogz

+0

이것은 레일에있는 루비이지만 일반적으로 루비에도 적용 가능하다고 생각했다. – MrEvil

답변

0

보통 테스트의 시작 블록에서 승인 된 사용자로 로그인합니다. 이렇게하면 내 권한이 원하는 방식으로 작동하는지 확인하는 테스트를 쉽게 작성할 수 있습니다.

나는 당신이 설명하는대로 그렇게하지 않을 것입니다.

+0

이 특정 인스턴스에서 익명 사용자가 기존 제품에 액세스 할 수 없음을 확인하고 있습니다. 나는 이것과 비슷한 많은 테스트를하고 있는데,이 테스트는 선재 상태를 필요로하며,이 상태는 사용자들에 의해 다양한 다른 허가 수준들로 접근된다. Fixture를 생성하기 위해 여러 사용자들과 사인을 한 후 실제 테스트를 수행하도록 사용자를 전환하는 것은 PITA입니다. – MrEvil