Подтвердить что ты не робот

Как добавить задержку к контроллеру Rails для тестирования?

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

4b9b3361

Ответ 1

Такой контроллер:

def catalog
  #Makes the request pause 1.5 seconds
  sleep 1.5

  ...
end

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

Ответ 2

Разработка принятого ответа. Если у вас есть базовый контроллер, такой как по умолчанию 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

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