这个问题可能是因为测试代码和系统时区不一致导致的。可以使用LocalDateTime.now()方法指定所需的时区来解决这个问题。
例如,如下代码可以返回指定时区的当前本地日期和时间:
LocalDateTime now = LocalDateTime.now(ZoneId.of("Asia/Shanghai"));
在测试代码中,也可以使用@Mock注解模拟当前时间并返回预设的时间,来避免时区不一致的问题。示例代码如下:
@Mock
private LocalDateTime now;
@BeforeEach
void setUp() {
MockitoAnnotations.openMocks(this);
@Test
void testSomething() {
LocalDateTime expectedTime = LocalDateTime.of(2022, 1, 1, 0, 0, 0);
Mockito.when(now.now()).thenReturn(expectedTime);
// ...测试代码...