我正在使用TimeCop Gem测试时间敏感的测试用例。lib目录中有一个文件。它只包含字符串常量。
举例说明。
module DateStr
SAMPLE = "Some date #{Date.current}"
end在我的黄瓜测试用例中,这部分代码不会得到模拟时间。它会选择系统时间。为什么会这样呢?
发布于 2015-10-13 06:55:29
加载DateStr时,将创建SAMPLE常量并指定存在的日期。
我想说,这是常量的错误用例,因为它们不应该改变。
编辑。
我不会在这种行为中使用常量。一种常见的方法是使用lambdas:
module DateStr
SAMPLE = -> {"Some date #{Date.current}"}
end
DateStr::SAMPLE.call # This will evaluate to current date但是这不是一个好的用例,因为值不是常量--它是自的,相反,对于这种行为,您应该使用一个简单的类方法:
module DateStr
def self.sample
"Some date #{Date.current}"
end
endhttps://stackoverflow.com/questions/33095835
复制相似问题