我有一些数据库功能,我正在测试(以确保我的查询等)。work)--在它们中,我正在对记录进行反序列化(通过Database.Esqueleto.Experimental),这些记录包含UTCTime
(和Maybe UTCTime
等)类型的值。
问题是我在测试中遇到了以下几种错误:
1) Vulture.Database.EventRepository.addEvents correctly sets the event properties
expected: 2023-05-06 21:52:13.441270819 UTC
but got: 2023-05-06 21:52:13.441271 UTC
这有点烦人,但我不知道如何操作UTCTime
值来改变精度,或者改变等式的工作方式。
1条答案
按热度按时间3yhwsihp1#
正如你所注意到的,
UTCTime
本身有一个相当稀疏的API。几乎所有有趣的事情都涉及到NominalDiffTime
。对于这种情况,我认为你最好得到两个时间之间的差,然后确保它低于某个ε。为此,相关的时间函数是diffUTCTime
,其余部分利用了NominalDiffTime
可用的大量示例。感谢Num
示例,我们有了可用的abs
。感谢Num
和Fractional
示例,我们可以使用文字来创建NominalDiffTime
值。当然,还有Ord
用于比较……根据需要随意调整
eps
。当然,您可能需要调整整个结构,以便从测试框架中获得良好的诊断。记住这是使用
UTCTime
的基本框架-这些值只是时间点。真正有趣的是使用NominalDiffTime
值,这些值表示UTCTime
值之间的间隔。这些区间比点有更丰富的API来操作它们。