首页 > 解决方案 > 在 rspec 中获取安全的随机值

问题描述

在我的控制器中,下载 xls 文件后将重定向到某个位置。重定向路径包含安全随机值。如何获得与控制器随机值相同的随机值。

我尝试从规范/控制器文件中获取随机值。但该值与控制器值不同。

这是我的控制器

def xls_job

  ref = SecureRandom.hex

  redirect_to polymorphic_url([:xls_job, :client, booking_type.tableize], { job_id: @job.id, job_ref: ref } )

end

我有这样的错误


Expected response to be a redirect to 
<http://test.host/client/interpretings/xls_job?job_id=15433&job_ref=1db823fef6b892e6c1cc362bf8fe5e87> 

but was a redirect to 
<http://test.host/client/interpretings/xls_job?job_id=15433&job_ref=b8c9464466b90e65492627b77e121346>.

我怎样才能获得与控制器相同的随机值..?

标签: rspec

解决方案


你必须ref像下面这样存根你的变量:

before { allow(SecureRandom).to receive(:hex).and_return('myrandomhex89809') }

来源:关于SO的问题

应该做的伎俩。


推荐阅读