반응형
RSpec/RoR을 사용하여 AJAX 요구를 테스트하려면 어떻게 해야 합니까?
저는 RoR을 처음 접하는 사람이고 최근 어플리케이션 테스트를 위해 BDD/Rspec을 배우기 시작했습니다.AJAX 요청을 지정할 수 있는 방법을 찾고 있지만, 지금까지 이에 대한 문서를 전혀 찾을 수 없었습니다.
이거 할 줄 아는 사람?스터브에 레일 2.3.8, rspec 1.3.0 및 mocha 0.9.8을 사용하고 있습니다(이것도 학습 중입니다).
컨트롤러 사양 내에서 테스트하는 경우 보통 전화하는 곳
get :index
인덱스 액션에 대한 HTTP 요청을 작성하려면 대신
xhr :get, :index
GET을 사용하여 인덱스액션에 대해 XmlHttpRequest(AJAX) 요구를 발행합니다.
레일 5 / 6
Rails 5.0(RSpec 3.X 사용)에서 설정해 보십시오.xhr: true
다음과 같습니다.
get :index, xhr: true
배경
Action Controller의 관련 코드는 다음과 같습니다.: Test Case.의 설정xhr
flag는 다음 헤더를 추가합니다.
if xhr
@request.set_header "HTTP_X_REQUESTED_WITH", "XMLHttpRequest"
@request.fetch_header("HTTP_ACCEPT") do |k|
@request.set_header k, [Mime[:js], Mime[:html], Mime[:xml], "text/xml", "*/*"].join(", ")
end
end
Rails 5 및 rspec > 3.1에 대해 구문이 약간 변경되었습니다(믿을 수 있습니다).
POST 요구의 경우:
post :create, xhr: true, params: { polls: { question: 'some' } }
이제 너는 설명적인 설정이 필요하다.params
GET 요청의 경우:
get :action, xhr: true, params: { id: 10 }
레일 4 및 rspec <= 3.1
xhr post :create, { polls: { question: 'some' } }
GET 요청:
xhr get :show, id: 10
다음으로 완전한 예를 제시하겠습니다.
get "/events", xhr: true, params: { direction: "past" }
언급URL : https://stackoverflow.com/questions/3971268/how-do-you-test-an-ajax-request-with-rspec-ror
반응형
'source' 카테고리의 다른 글
Angular의 요소JS 지시어 (0) | 2023.02.23 |
---|---|
JSON을 Ruby 해시로 변환하는 방법 (0) | 2023.02.18 |
Wordpress를 mysql 서버에 연결할 수 없습니다. (0) | 2023.02.14 |
워드프레스 플러그인에서 컬을 사용하는 방법은 무엇입니까? (0) | 2023.02.14 |
Lodash Debounce는 비난하지 않는다. (0) | 2023.02.14 |