【发布时间】:2017-01-10 17:16:47
【问题描述】:
我正在做一个单元测试,它调用一个类并检查该类中的方法是否已使用某些参数调用。其中一个参数是LocalDateTime.now()。
我的问题是,当时间控制回到我的 JUnit 测试时,时间已经过去了,所以如果我尝试将我正在调用的类中使用的时间与当前时间进行比较,它们不会匹配.
这是我正在研究的方法:
ServiceStatus serviceStatus = ServiceStatus.createNew(LocalDateTime.now());
Junit 测试是:
verify(service).saveNotice(LocalDateTime.now));
我已经尝试使用TimeFactory 来修复日期:
given(timeFactory.currentDateTime()).willReturn(NOW);
接着是:
given(message.getHeader("MESSAGE_CREATED_TIME")).willReturn(NOW.toString());
&
verify(service).saveNotice(NOW));
但没有快乐。
有什么建议吗?
(PS。在实际代码中还有其他参数,但为了简单起见和商业机密,我把它们去掉了。)
【问题讨论】:
-
我注意到您没有接受答案。请考虑这样做 - 如果您需要更多信息,请随时给我留言。
-
在类似问题上查看detailed answer,这可能会有所帮助
标签: unit-testing time junit mockito