首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Timecop无法正确地模拟日期。

Timecop无法正确地模拟日期。
EN

Stack Overflow用户
提问于 2015-10-13 06:41:55
回答 1查看 152关注 0票数 0

我正在使用TimeCop Gem测试时间敏感的测试用例。lib目录中有一个文件。它只包含字符串常量。

举例说明。

代码语言:javascript
复制
module DateStr
   SAMPLE = "Some date #{Date.current}"
end

在我的黄瓜测试用例中,这部分代码不会得到模拟时间。它会选择系统时间。为什么会这样呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-13 06:55:29

加载DateStr时,将创建SAMPLE常量并指定存在的日期。

我想说,这是常量的错误用例,因为它们不应该改变。

编辑。

我不会在这种行为中使用常量。一种常见的方法是使用lambdas:

代码语言:javascript
复制
module DateStr
   SAMPLE = -> {"Some date #{Date.current}"}
end
DateStr::SAMPLE.call # This will evaluate to current date

但是这不是一个好的用例,因为值不是常量--它是自的,相反,对于这种行为,您应该使用一个简单的类方法:

代码语言:javascript
复制
module DateStr
   def self.sample
     "Some date #{Date.current}"
   end
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33095835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档