rspec 示例后解冻时间

Posted

技术标签:

【中文标题】rspec 示例后解冻时间【英文标题】:unfreeze time after rspec examples 【发布时间】:2022-01-14 07:48:08 【问题描述】:

在我的 rspec 中,我调用 rails 辅助方法 freeze_time

before do
  freeze_time
end

在规范之后我需要运行一些东西来解冻时间

after do
  #unfreeze time
end

【问题讨论】:

【参考方案1】:

是的,你必须这样做。通常我将它与块一起使用,这样我就不会影响其他测试示例,以防我忘记解冻。当规范文件有点大时,这很常见。

it 'testing freeze time' do
  freeze_time do
    # do some stuff
  end
  # time is no longer freeze from now on
end

【讨论】:

【参考方案2】:

你需要像这样使用travel_back回到原来的时间。

after do
  travel_back
end

Here 是travel_back 的文档。

【讨论】:

以上是关于rspec 示例后解冻时间的主要内容,如果未能解决你的问题,请参考以下文章

在某些 RSpec rails 请求示例中测试 HTTP 状态代码,但在其他示例中测试引发异常

ruby ruby rspec测试示例

在 Rails 的 rspec 中,我如何编写/编辑我的测试文件,以便特定上下文中的示例以设定的顺序运行?

RSPEC 让备用作用域

何时使用 RSpec let()?

Rails PayPal IPN activemerchant 控制器 rspec 测试