hajubal / pickupcoins

0 stars 0 forks source link

github action에서 jpa에서 조회한 CreatedDate 컬럼 비교가 실패하는 원인 확인 #21

Open hajubal opened 3 months ago

hajubal commented 3 months ago

@DisplayName("사용자 조회 테스트") @Test void getSiteUserTest() { //given SiteUser beforeSiteUser = createSiteUser();

    //when
    SiteUser updateSiteUser = siteUserService.getSiteUser(beforeSiteUser.getLoginId());

    //then
    assertThat(updateSiteUser.getUserName()).isEqualTo(beforeSiteUser.getUserName());
    assertThat(updateSiteUser.getPassword()).isEqualTo(beforeSiteUser.getPassword());
    assertThat(updateSiteUser.getLoginId()).isEqualTo(beforeSiteUser.getLoginId());
    assertThat(updateSiteUser.getId()).isEqualTo(beforeSiteUser.getId());
    assertThat(updateSiteUser.getSlackWebhookUrl()).isEqualTo(beforeSiteUser.getSlackWebhookUrl());
    assertThat(updateSiteUser.getCreatedBy()).isEqualTo(beforeSiteUser.getCreatedBy());
    //FIXME github action에서 실패. why????
    //assertThat(updateSiteUser.getCreatedDate()).isEqualTo(beforeSiteUser.getCreatedDate());
    assertThat(updateSiteUser.getLastModifiedBy()).isEqualTo(beforeSiteUser.getLastModifiedBy());

}
hajubal commented 3 months ago

ubuntu:latest에서 빌드해 본결과 아래와 같은 문제로 실패

org.opentest4j.AssertionFailedError: 
expected: 2024-03-18T04:59:13.005452217 (java.time.LocalDateTime)
 but was: 2024-03-18T04:59:13.005452 (java.time.LocalDateTime)
when comparing values using 'ChronoLocalDateTime.timeLineOrder()'
    at java.base@18.0.2-ea/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67)
    at java.base@18.0.2-ea/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    at app//me.synology.hajubal.coins.service.SiteUserServiceTest.getSiteUserTest(SiteUserServiceTest.java:66)
    at java.base@18.0.2-ea/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
    at java.base@18.0.2-ea/java.lang.reflect.Method.invoke(Method.java:577)
    at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
    at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
    at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
    at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)

ubuntu openjdk를 통해 에서 생성된 LocalDateTime 객체의 최소 단위의 시간과 JPA를 통해 repository에서 가져오는 LocalDateTime의 최소단위 시간의 차이가 있는 것으로 추정됨.