2013-05-08 5 views
0

Test :: Unit에서 HTTP 요청 헤더를 구문 분석하려고하지만 아무 소용이 없습니다.Test :: Unit에서 요청 헤더 구문 분석

test "create a shopify order" do 
    get :order, PARAMS, {HEADER1 => VAL, HEADER2 => VAL} 
    assert_response :success # Make sure this returns 200, first off 
    ... 
end 

일반적으로, 나는 request.headers[HEADER1] 같은 헤더를 읽을 것이다, 그러나 이것은 테스트 : 단위에서 nil를 반환 그래서 같은 컨트롤러에 대한 기능 테스트를 쓰고 있어요. request이 정의되지 않았습니다.

위의 요청에서 내가 설정 한 헤더 값을 실제로 잡아낼 수 있습니까? 그리고 어떻게 그들을 request에 할당합니까? 내 응용 프로그램은 webservices에서 가져오고, 헤더에 전달 된 값을 테스트해야하므로 내 응용 프로그램 코드를 변경하고 싶지 않습니다. 그 요청이 Test :: Unit에서와 같은 것만 시뮬레이션하면됩니다.

감사합니다.

+0

"test"와 "assert_response"를 사용하는 것은 대개 Test :: Unit 테스트를 설명합니다. 당신은 rspec을 사용하고 있다는 긍정적입니까? –

+0

전혀 확실하지 않습니다! 저는 기본 RoR 테스트 스위트를 사용하고 있습니다 ...이 테스트는 기능 테스트이기 때문에 단위 테스트가 아니므로 Test :: Unit을 사용하지 않는다고 가정했습니다. 나는 확실히 틀릴 수 있었다. 오랜 시간 RoR 개발자, 총 테스트 newb. – ideaoforder

+0

어떤 특정 헤더 속성을 사용할 것입니까? –

답변

1

확실히 사용하고있는 테스트가 확실히 도움이됩니다. (Jesse에게 감사드립니다). 그래서

http://twobitlabs.com/2010/09/setting-request-headers-in-rails-functional-tests/

나는 내가 생각했던 헤더를 설정하지 않은 : 나는, 헤더를 설정하는 기능 테스트에서 다르게 작동하고 있음을하지 기능 테스트는 통합 테스트에 대한 문서에서 찾고 있었던 것을 발견 . 그들은 잘 읽히고있었습니다. 단지 설정되지 않았습니다.