【发布时间】:2020-06-24 00:28:58
【问题描述】:
我正在为我的商务课程编写单元测试,我想根据我的测试将 LocalDateTime 模拟到特定时间。这是我的功能:
private fun isExpired(access: Access): Boolean {
return access.validUntil.isAfter(LocalDateTime.now())
}
如何模拟LocalDateTime.now()?
【问题讨论】:
-
为什么不能使用“of”方法docs.oracle.com/javase/8/docs/api/java/time/…
-
为什么要传递 localdatetime 作为函数参数?是不是可以mock一下?
-
现在是最终类的静态方法,Mockito 无法模拟:github.com/mockito/mockito/wiki/…
-
顺便说一句,我无法想象调用
LocalDateTime.now是正确的做法。该类型不能代表一个时刻,也不是时间线上的一个点,因为它故意缺少时区的上下文或与 UTC 的偏移量。因此,使用该类来捕捉当前时刻是没有意义的。我敢打赌你真的需要Instant.now或ZonedDateTime.now。
标签: java unit-testing kotlin mocking mockito