【发布时间】:2019-10-21 17:46:33
【问题描述】:
我使用Instant.now() 来获取当前的UTC 毫秒,然后将其截断到最接近的小时。我所有的JUnit 都失败了,因为它们正在占用当前的系统时间。如何使Instant.now() 返回一个可以在JUnit 测试中提供的固定值。
public static Long getCurrentHour() {
Instant now = Instant.now();
Instant cH = now.truncatedTo(ChronoUnit.HOURS);
return cH.toEpochMilli();
}
【问题讨论】:
-
不完全,SO要求源有一个
setClock,这不好。 -
我认为
setClock很好。它使类可测试。里程不同。
标签: java junit java.time.instant