source

테스트를 위해 레일 컨트롤러에 지연을 추가하는 방법

nicesource 2023. 3. 10. 22:06
반응형

테스트를 위해 레일 컨트롤러에 지연을 추가하는 방법

웹 애플리케이션의 프런트 엔드를 테스트하고 있는데, AJAX 요청 사이에 다양한 지연이 발생하는 일부 전환이 어떻게 표시되는지 테스트하고 싶습니다.다른 방법으로 추가할 수 있는 것은 없습니까?sleep(1500)응답을 지연시킬 수 있을까요?

이와 같은 컨트롤러:

def catalog
  #Makes the request pause 1.5 seconds
  sleep 1.5

  ...
end

더 좋은 점은 개발 환경에 sleep만 추가하는 것입니다.

수용된 답변에 대해 자세히 설명하고 있습니다.기본 컨트롤러와 같은 기본 컨트롤러가 있는 경우ApplicationController이 필터는 다른 컨트롤러에 의해 확장됩니다.다음 필터를 정의할 수 있습니다.

class ApplicationController < ActionController::Base

  # adds 1s delay only if in development env
  before_action if: "Rails.env.development?" do
    sleep 1
  end
end

여기서 1은 응답을 반환할 때까지의 대기 시간(초)입니다(sleep docs 참조).

이 필터는 응용 프로그램이 개발 환경에 있는 경우에만 트리거되며 응용 프로그램이 처리하는 모든 요청에 원하는 지연이 추가됩니다.

언급URL : https://stackoverflow.com/questions/7098732/how-to-add-a-delay-to-rails-controller-for-testing

반응형