내가 알 수있는 한, 당신은 할 수 없습니다. 통합 테스트의 세션 값 (rails 3.2.2)은 사본입니다. (Rails gods : 내가 인 경우 수정하십시오.) 값을 설정할 수는 있지만 실제 세션의 로컬 복사본이기 때문에 다음 get/post 에 영향을 미치지 않습니다. assert 테스트에 적합합니다. 통합 테스트 중에 세션 상태를 유지하는 데 그리 좋지 않습니다.
에버그린을 통한 자바 스크립트 테스트를 지원하는 테스트 컨트롤러가 있습니다.
내 솔루션은 내 테스트 컨트롤러에 방법을 추가하는 것이고, 프로덕션 환경에서는 경로를 사용할 수 있기 때문에 세션 값을 설정할 수 있습니다.
기본적으로 내 app_test # set_session 메서드는 접두사에 대해 매개 변수 이름을 차단합니다. 접두사가 발견되면 접두사가 제거 된 매개 변수 이름 에 대한 세션 값이 설정됩니다. 뭔가 같이 : "세션으로
prefix = "set_session_"
post("/set_session.html", { (prefix + "user_id") => "My Name Is Mudd" })
로 꽤되지 않음 : 그래서
params.each() do |key, value|
next if (key !~ /^set_session_/)
session[ key.slice(("set_session_".size())..-1).to_sym ] = value
end
# don't forget to render something/anything
, 내 통합 테스트 동안 세션 변수를 설정, 내가 좋아하는 코드의 작은 덩어리가 [을 : USER_ID] = ' My Name은 Mudd입니다. ""하지만 작동합니다. 내 다음 게시물/get에 원하는 값으로 설정된 세션 [: user_id]이 표시됩니다.
이것은 쉽게 정수, 기호 등을 전달할 수 있도록 확장되었으며 물론 여러 세션 키/값 쌍을 한 번에 설정할 수 있습니다. 예쁘지는 않지만 나쁘지 않습니다.
트위터 또는 페이스 북과 상충됩니다. – jbasko
도움이 되셨습니까? http://stackoverflow.com/questions/5331045/testing-a-web-applications-facebook-integration-with-cucumber –