2011-08-17 213 views
34

我正在测试Web应用程序的前端,并且想要测试一些转换如何在AJAX请求之间出现各种延迟。有什么方法可以将sleep(1500)添加到我的控制器以延迟响应?如何添加延迟到Rails控制器进行测试?

+1

只需将sleep(1000)呼叫添加到您的控制器操作即可。 –

+5

RoR中的默认睡眠单位是_seconds_ !!给控制器增加了1.5的睡眠时间,并且生活很好。谢谢 :) – RSG

回答

66

控制器就像这样:

def catalog 
    #Makes the request pause 1.5 seconds 
    sleep 1.5 

    ... 
end 

更妙的是:只能添加睡眠的开发环境。

9

详细阐述了接受的答案。如果你有一些基本控制器等,其是通过用户还可以定义如下过滤器的任何其他控制器扩展默认ApplicationController

class ApplicationController < ActionController::Base 

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

其中: 是秒返回任何响应之前等待号码,请参阅sleep文档

这个过滤器将被触发只有你的应用是在发展环境,它会增加所需的延迟每个请求由您的应用程序处理。