本文介绍了使用 Mockito 模拟 Joda DateTime 方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!
问题描述
限时送ChatGPT账号..
我希望 millis 返回指定的值.
I want millis to return specified value.
public long myMethod(){
DateTime nowDateTime = new DateTime(DateTimeZone.UTC);
long millis = nowDateTime.getMillis();
System.out.println(millis);
}
我试过了,但没有运气.
I tried this with no luck.
@RunWith(PowerMockRunner.class)
@PrepareForTest({ DateTime.class })
@PowerMockIgnore({ "javax.crypto.*", "javax.management*" })
...
...
public void testMyMethod(){
DateTime nowDateTime = PowerMockito.mock(DateTime.class);
Mockito.when(nowDateTime.getMillis()).thenReturn(10L);
}
我该如何解决这个问题?
How can I fix this?
推荐答案
只需使用 JodaTime 的 org.joda.time.DateTimeUtils#setCurrentMillisFixed 方法,该方法旨在修复 new DateTime() 到与当前时间不同的时间.要返回正常时间,请稍后使用 org.joda.time.DateTimeUtils#setCurrentMillisSystem.无需嘲笑.
Just use the org.joda.time.DateTimeUtils#setCurrentMillisFixed method of JodaTime which was designed to fix new DateTime() to a different time than the current time. To return to the normal time use org.joda.time.DateTimeUtils#setCurrentMillisSystem afterwards. No mocking needed.
@Test
public void test() {
DateTimeUtils.setCurrentMillisFixed(10L);
// .. your code
}
@After
public void cleanup() {
// Make sure to cleanup afterwards
DateTimeUtils.setCurrentMillisSystem()
}
这篇关于使用 Mockito 模拟 Joda DateTime 方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!
The End


大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)