datetime - 如何在 Elixir 中模拟当前时间

标签 datetime testing elixir ecto

我有一些取决于当前时间的测试,到目前为止我无法找到解决方案。我已经尝试了一些模拟库,例如 mock 但它模拟了整个模块并且失败了。 非常感谢任何帮助(如果我只模拟 DateTime.utc_now 一切正常)

注意:测试在很大程度上依赖于其他 DateTimeDate 函数,所以模拟整个模块不是一个很好的选择(我也试过这个但由于非常复杂而失败了案例,我在很多测试中都需要这个)

实际测试: 我有两个日期,开始日期结束日期 作为我要测试的函数的输入。在出于测试目的调用该函数之前,我插入了一些与当前周相关的数据(当前数据到接下来的 7 天)。现在该函数将获取当前日期时间并检查特定日期(每条记录将说明它是否适用于一周中的当前日期以及迭代的当前时间段范围 -> 开始和结束日期)。 例如,一条记录适用于 mon -> 2:12 到 3:13

最佳答案

最适合我需求的解决方案(简单、运行良好且符合上述要求)是:

define your own function/service MyDateTime.utc_now/0 and mock it in your tests. — Reference.

关于datetime - 如何在 Elixir 中模拟当前时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52802099/

相关文章:

erlang - 未为结构实现可枚举协议(protocol)。如何将结构转换为可枚举?

elixir - 步骤列表与 Elixir

python - Pandas 数据框 : group by year and month

django - 如何正确使用django testcase的addCleanup方法?

java - Eclipse Indigo 中的 JUnit 测试没有报告任何内容?

ruby-on-rails - 仅从现有模型/ Controller 生成测试

elixir - 从记录集中获取单条记录

r - 在 POSIXct 上附加日期时间对象

c++ - 使用 `__DATE__` 或 `__TIME__` 是否违反单一定义规则?

sql-server - 为什么 CAST ('20140904 23:59:59.999' AS datetime) 等于 '2014-09-05 00:00:00.000' ?