Как добавить задержку в контроллер Rails для тестирования? - PullRequest
42 голосов
/ 18 августа 2011

Я тестирую интерфейс веб-приложения и хочу проверить, как выглядят некоторые переходы с различными задержками между запросами AJAX.Можно ли как-нибудь добавить sleep(1500) к моему контроллеру, чтобы задержать ответ?

Ответы [ 2 ]

75 голосов
/ 18 августа 2011

Контроллер вроде так:

def catalog
  #Makes the request pause 1.5 seconds
  sleep 1.5

  ...
end

Еще лучше: добавьте только сон для среды разработки.

14 голосов
/ 02 августа 2016

Разработка принятого ответа. Если у вас есть базовый контроллер, такой как ApplicationController по умолчанию, который расширяется любым другим контроллером, вы можете определить следующий фильтр:

class ApplicationController < ActionController::Base

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

Где: 1 - количество секунд ожидания перед возвратом ответа, см. sleep docs

Этот фильтр будет срабатывать только в том случае, если ваше приложение находится в среде development и будет добавлять желаемую задержку к каждому запросу , обработанному вашим приложением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...