如何伪造Time.now?

2023-12-23

最好的设置方法是什么Time.now为了在单元测试中测试时间敏感的方法?


我真的很喜欢Timecop https://github.com/travisjeffery/timecop图书馆。您可以以块形式进行时间扭曲(就像时间扭曲一样):

Timecop.travel(6.days.ago) do
  @model = TimeSensitiveMode.new
end
assert @model.times_up!

(是的,你可以嵌套块形式的时间旅行。)

您还可以进行声明式时间旅行:

class MyTest < Test::Unit::TestCase
  def setup
    Timecop.travel(...)
  end
  def teardown
    Timecop.return
  end
end

我有一些cucumber http://wiki.github.com/aslakhellesoy/cucumber时间警察的帮手here http://gist.github.com/154616。他们让你做这样的事情:

Given it is currently January 24, 2008
And I go to the new post page
And I fill in "title" with "An old post"
And I fill in "body" with "..."
And I press "Submit"
And we jump in our Delorean and return to the present
When I go to the home page
I should not see "An old post"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何伪造Time.now? 的相关文章

随机推荐

  • Silverlight Datagrid 上 UpdateSourceTrigger LostFocus 的解决方法?

    我有一个 Silverlight 2 应用程序 用于验证 OnTabSelectionChanged 数据 我立即开始希望 UpdateSourceTrigger 不仅仅允许 LostFocus 因为如果您单击选项卡而不离开控件 则 LIN
  • Rails:Net::SMTPAuthenticationError(535 身份验证失败:用户名/密码错误)

    我正在尝试在 Rails 应用程序中设置电子邮件 但收到错误 Net SMTPAuthenticationError 535 身份验证失败 用户名 密码错误 当我在生产环境中触发邮件操作时 控制器 class FeedbacksContro
  • Windows(手机)8.1 相机使用

    我正在创建一个 Windows 通用应用程序 我希望用户能够上传图片 并且用户应该可以选择当场拍摄并发送该图片 我使用 MediaCapture api 进行此工作 然而 我似乎只能使用一个摄像头 因此 例如 如果我的手机有前置摄像头和后置
  • 在文本框中的最后一个字符后设置焦点

    我有 3 个电话号码文本框 当用户键入时 它会自动从一个文本框移动到下一个文本框 当用户按退格键时 我可以将焦点移动到上一个文本框 问题是在 IE 中 焦点设置在文本框的开头 这是我的代码 在 Chrome 中运行良好 AreaCode l
  • 使用 Response.TransmitFile 下载文件但也包含页面源

    下面是有问题的代码 我下载了一个 csv 但是它将页面源附加到底部 关于如何防止这种情况有什么想法吗 var priceList Test const string downloadName PriceList csv var fs new
  • 使文件夹不受 SVN 管理

    是否可以从存储库中删除该文件夹 就像不会从每个用户的本地存储库中删除该文件夹一样 就我而言 有一个名为 config 的目录 旨在进行版本控制 现在我们决定从版本控制中删除该目录 但将其保留在每台计算机上 顺便将其添加到 svn ignor
  • 页面加载完成后图像消失

    我使用以下代码在页脚中显示图像 我看到图像几秒钟 但是页面完全加载后 图像消失了 有人知道这里出了什么问题吗 我正在使用 Rails 3 2 8 和 Chrome 在 Firefox 或 Safari 中不会发生这种情况 Thanks UP
  • 如何编写使用内置相机拍照的 Solo/Robotium 测试用例?

    从我的活动中 我执行 startActivityForResult MediaStore ACTION IMAGE CAPTURE 然后我进入内置相机活动 在本例中是在模拟器中 当我现在这样做时 独奏 clickOnButton 0 在我的
  • 单调的堆栈和队列。定义和例子

    到底什么是单调堆栈 例如 它与单调队列有何不同 例如 考虑以下整数数组 0 2 1 3 4 如果我从左到右处理这个数组并将其插入到单调递减的堆栈中 我应该在堆栈中看到什么 为什么 Here http www leetcode solutio
  • Nginx 具有不同根的多个位置

    我的 nginx 配置非常简单 里面有 3 个位置 他们每个人都有自己的根目录 我将来应该能够轻松添加另一个根目录 我想要的是 Request admin gt 位置 admin Request admin gt 位置 admin Requ
  • 无法将不可变值作为 inout 参数传递:函数调用返回不可变值

    我分叉了这个项目 所以我不太熟悉所有细节 https github com nebs hello bluetooth blob master HelloBluetooth NSData 2BInt8 swift https github c
  • 如何使数据类更好地与 __slots__ 配合使用?

    It 已决定 https github com ericvsmith dataclasses issues 28删除对的直接支持 slots 来自 Python 3 7 的数据类 尽管如此 slots 仍然可以与数据类一起使用 from d
  • 将 TextField 绑定到 ReadOnlyDoubleProperty

    我可以绑定一个TextField的文本属性为DoubleProperty 像这样 textField textProperty bindBidirectional someDoubleProperty new NumberStringCon
  • 将数据插入 SQL Server 返回错误代码 00q

    首先 我的代码的最大部分是在几周前工作的 与此同时 我们从 MySQL 服务器更换为 SQL 服务器 并且对架构设计进行了一些更改 我使用 Percobol 据我所知 它使用 OpenCobol 编译器 PERFORM 2010 GEBRU
  • Dynamic_cast<> 是否仅限于沿着继承层次结构进行直接转换?

    CODE struct A virtual details there but left out struct B virtual details there but left out struct C A B virtual detail
  • WaitHandle.WaitAll 64 个句柄限制的解决方法?

    我的应用程序通过以下方式生成不同的小工作线程负载ThreadPool QueueUserWorkItem我通过多个跟踪ManualResetEvent实例 我用WaitHandle WaitAll方法阻止我的应用程序关闭 直到这些线程完成
  • 如何向 RCpp 中的数据框添加新列?

    我正在尝试使用 RCpp 向数据框添加新列 在下面的代码中 我打算向数据框 df 添加一个 结果 列 但运行代码后数据集没有 结果 列 你能告诉我他们出了什么问题吗 R 文件调用 AddNewCol 函数 library Rcpp sour
  • 如何在 Perl 中将数组转换为散列?

    我有一个数组 并尝试将数组内容转换为带有键和值的哈希值 索引 0 是键 索引 1 是值 索引 2 是键 索引 3 是值 依此类推 但它没有产生预期的结果 代码如下 open FILE message xml die Cannot open
  • 初始拒绝后使用 getUserMedia() 重新提示权限

    在被拒绝一次后 我们如何使用 getUserMedia 请求相机 麦克风访问权限 我正在使用 getUserMedia 来访问用户的相机并将数据通过管道传输到画布 那一点一切都很好 在测试中 我点击了一次拒绝 此时 在 Chrome 和 F
  • 如何伪造Time.now?

    最好的设置方法是什么Time now为了在单元测试中测试时间敏感的方法 我真的很喜欢Timecop https github com travisjeffery timecop图书馆 您可以以块形式进行时间扭曲 就像时间扭曲一样 Timec