문제

RSPEC의 컨트롤러 API로 테스트하는 데 큰 문제가 있습니다. 지금은 미들웨어 인증 솔루션을 사용하고 있습니다 (파수꾼), 그리고 사양을 실행할 때, 미들웨어에 의해 추가 된 프록시는 없으며 모든 인증 테스트가 던지고 있습니다. NilPointerException모든 곳에서 s.

RSPEC은 의도적으로 최종 앱에 미들웨어를 추가하지 않는 것 같습니다.

나는 이미 오이로 모든 것을 테스트했지만, 이것은 오래된 인증 버전의 리팩토링이며, 작동하기 위해 인증 로직에 의존하는 몇 가지 컨트롤러 테스트가 있습니다.

미리 감사드립니다.

도움이 되었습니까?

해결책

Rails의 RSPEC Controller API는 컨트롤러 호출에서 실제로 랙을 사용하지 않는 것 같습니다. 그러나 David Chelimsky가 지적한 (입증되지 않은) 솔루션이 있습니다. RSPEC-USER 메일 목록에 그가 준 답변을 넣을 것입니다.

컨트롤러 사양은 레일 2에서 랙을 통과하지 않으므로 실제로는 아닙니다.

Rails 통합 테스트 API를 래핑하는 통합 사양이있어 Rails 통합 테스트에서 수행 할 수있는 모든 작업을 수행 할 수 있습니다. 파일을 사양/통합으로 옮기고 요청을 "get : index"에서 "get '경로//색인"에서 변환하면 거의 좋은 방법이어야합니다.

그것이 어떻게 작동하는지 알려주십시오.

건배, 데이비드

나는 사양을 실행하기 위해 더미 작업을 수행하기 위해 Application Controller를 조롱하여 David의 제안을 지적하기 전에이 작업을 수행 했으므로 그 작동 여부를 알 수 없었습니다. 어느 쪽이든 나는 그것이 같은 상황에서 다른 개발자에게 도움이되기를 바랍니다.

다른 팁

관련 문제에 대한이 게시물은 약간의 빛을 비추고 결국 RSPEC 구성에서 미들웨어 구성 요소를 지정하기위한 솔루션으로 이어질 수 있습니다 (희망!)

https://rspec.lighthouseapp.com/projects/5645/tickets/963-request-is-nil#ticket-963-14

그것은 당신의 특정 Rails2 문제에 실제로 도움이되지 않지만,이 쿼리는 'RSPEC Middleware'를 위해 상점에 올랐으므로 Rails3 베타와 그 너머에 시도 할 때이 문제에 직면하는 다른 사람들을 도울 수 있기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top