Expected: same property values as - LocalDateTime 에러 일 시

Sangwon Na·2021년 9월 9일
0

ERROR

목록 보기
7/8

🚨 뜨는 에러

Expected: same property values as Customer [createdAt: <2021-09-09T01:59:59.352359500>, customerId: <7a5033db-7ea8-4750-b85b-b6de1adb0578>, email: "test-user@gmail.com", lastLoginAt: null, name: "test-user"]
     but: createdAt was <2021-09-09T01:59:59.352360>

🚩 원인 및 해결방법 - 데브코스 [1기-P] 신용진님 제공

data source를 이용하는 강의 중, Insert Test에서 LocalDateTime.now()오류가 났었습니다.
원인은 System이 가지고 있는 시계의 문제로, LocatDateTime의 정밀도가 운영체제마다 다르다는 것이였습니다!
Mac은 정밀도가 마이크로(6자리), Window는 정밀도가 밀리(3자리) 라서 생긴일입니다!
윈도우 사용하시는 분들은 LocatDate 객체를 now를 통해서 생성할때 아래와 같은 방식으로 정밀도를 맞춰서 사용하는 방식을 추천드립니다!

// Mac은 정밀도가 마이크로(6자리), Window는 정밀도가 밀리(3자리)
var newCustomer = new Customer(UUID.randomUUID(), "test-user", "test-user@gmail.com", LocalDateTime.now());

//  Window는 정밀도가 밀리(3자리)
var newCustomer = new Customer(UUID.randomUUID(), "test-user", "test-user@gmail.com", LocalDateTime.now().truncatedTo(ChronoUnit.MILLIS));

assertThat(retrievedCustomer.get(), samePropertyValuesAs(newCustomer)); 으로 가져올때 윈도우는 반올림하여 가져오기 때문에, 반올림이면 에러, 반올림을 버릴땐 통과되는 경우가 발생합니다.

profile
나상원의 LOG

0개의 댓글