gpt4 book ai didi

java - 针对使用 LocalDateTime 的 api 进行测试

转载 作者:太空宇宙 更新时间:2023-11-04 12:35:01 26 4
gpt4 key购买 nike

我必须针对内部使用 LocalDateTime.now() 的 api 编写一些测试,使用该值执行一些操作并返回一个相当长的字符串 (~1MB)。

我想编写一些回归测试,以确保即使出现新版本的 api,结果也是相同的。

遗憾的是,测试结果每次都不同,因为 LocalDateTime.now() 总是返回不同的值(惊喜,惊喜......)

是否可以以某种方式将 LocalDateTime.now() 的结果修复为硬编码值。

由于它只需要在一些单元测试中工作,脏解决方案也是受欢迎的。

最佳答案

选项 1:使用 Powermock 模拟静态方法

您可以通过模拟静态方法并在每次调用时返回正确的对象来实现此目的。

 @PrepareForTest(LocalDateTime.class) //This is added added at test class
PowerMockito.mockStatic(LocalDateTime.class);
Mockito.when(LocalDateTime.now()).thenReturn(firstLocalDateTime);
Mockito.when(LocalDateTime.now()).thenReturn(secondLocalDateTime);

参见https://github.com/jayway/powermock/wiki/MockitoUsage#mocking-static-method

选项 2将调用包装在无需使用 powermock 即可模拟的方法中。

关于java - 针对使用 LocalDateTime 的 api 进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37416029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com