2012-03-27 2 views
1

특정 작업에 대한 HTTP 요청을 게시하는 컨트롤러가 있는데 요청이 실제로 전송되고 있음을 테스트/주장하려면 어떻게합니까?요청이 Rails 컨트롤러에서 전송 된 것을 테스트했습니다.

+0

당신은 무엇을 시도? 컨트롤러/요청을 테스트하는 것은 새로운 것은 아니며 많은 예제/도움말/도구가 있습니다. – MrDanA

+0

응답을 주장 할 다른 테스트가 있지만 요청이 전송되었다고 주장 할 수있는 테스트를 찾을 수 없습니다. – Nonos

답변

0

나는 단지 응답이나 더 높은 단계의 행동 (이 일이하는 것처럼)을 테스트 할 것이다. 그러나 상호 작용 (어쩌면 경로 확인 등)을 테스트하고 싶다면 조롱하십시오. 다음은 몇 가지 아이디어입니다.

# test where the request goes 
request = ActionController::TestRequest.new 
request.query_parameters[:foo] = "bar" 
request.path = "/" 
ActionController::Routing::Routes.recognize(request) 
assert_equal({"controller"=>"your_controller","action"=>"index"}, request.path_parameters) 
# other tests here if you want 

RSpec에 유형 검사 :

# test that the controller will receive it 
controller = YourController.new 
controller.should respond_to(:create) 
관련 문제