2014-09-05 12 views
0

response과 비슷한 사용자 정의 변수를 만들고 싶습니다.이 변수는 controller specs에서만 사용할 수 있습니다. rspec이 후크 인 앞/뒤인 filters을 지원한다는 것을 알았습니다. 나중에 사용하기 위해 인스턴스 변수를 만들 수 있음을 의미합니다. 하지만 response 객체는 느리게 평가되는 변수 인 let처럼 느껴지고 작동합니다. 또한 제어기 스펙은 인수를 허용 할 수있는 assign 메소드를 지원합니다. rspec은 특정 유형의 사양과 함께 사용할 유사한 방법을 만드는 방법을 지원합니까?컨트롤러 스펙에 대한 응답과 같이 사용자 정의 rspec 변수를 생성하십시오.

참고 : 저는 rspec 3.0 이하를 지원할 필요가 없습니다.

+0

아마도 테스트하려는 것을 게시 할 수 있으며 더 많은 도움을받을 수 있습니다. – engineersmnky

답변

2

함수를 사용하여 모듈을 만든 다음 RSpec configure 블록에 모듈을 포함 시키면됩니다. 모듈을 포함 할 때 두 번째 매개 변수로 사용할 수 있어야하는 유형의 유형을 제어 할 수 있습니다.

module ControllerSpecHelpers 
    def something 
    'fubar2000' 
    end 
end 

RSpec.configure do |config| 
    config.include ControllerSpecHelpers, type: :controller 
end 

RSpec.describe BlahController, type: :controller do 
    it 'should be possible to use the `something` helper in a controller spec' do 
    expect(something).to eq('fubar2000') 
    end 
end