如何为 Rails 控制器添加延迟以进行测试?
Posted
技术标签:
【中文标题】如何为 Rails 控制器添加延迟以进行测试?【英文标题】:How to add a delay to Rails controller for testing? 【发布时间】:2011-10-29 05:59:01 【问题描述】:我正在测试 Web 应用程序的前端,并想测试在 AJAX 请求之间出现各种延迟时,某些转换是如何出现的。有什么办法可以在控制器中添加sleep(1500)
以延迟响应?
【问题讨论】:
只需将 sleep(1000) 调用添加到您的控制器操作即可。 RoR 中睡眠的默认单位是秒!!为控制器添加了 sleep 1.5,生活很好。谢谢:) 【参考方案1】:像这样的控制器:
def catalog
#Makes the request pause 1.5 seconds
sleep 1.5
...
end
更好的是:只为开发环境添加睡眠。
【讨论】:
【参考方案2】:详细说明接受的答案。如果您有一些基本控制器,例如默认的 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
此过滤器仅在您的应用程序处于开发环境时才会触发,它会为您的应用程序处理的每个请求添加所需的延迟 .
【讨论】:
以上是关于如何为 Rails 控制器添加延迟以进行测试?的主要内容,如果未能解决你的问题,请参考以下文章