inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

토비의 스프링 6 - 이해와 원리

학습 테스트

안녕하세요.

145

밍구

작성한 질문수 3

0

아래 코드에서 계속해서 테스트 오류가 뜹니다..
이유가 무엇일까요?

오히려 isequalto 를 사용했을때 테스트가 성공해버려요

 

@Test
void Clock() {
    Clock clock = Clock.systemDefaultZone();

    LocalDateTime dt1 = LocalDateTime.now(clock);
    LocalDateTime dt2 = LocalDateTime.now(clock);

    Assertions.assertThat(dt2).isAfter(dt1);

}
// 오류 메세지
java.lang.AssertionError: 
Expecting actual:
  2025-05-09T16:54:49.066025800 (java.time.LocalDateTime)
to be strictly after:
  2025-05-09T16:54:49.066025800 (java.time.LocalDateTime)
when comparing values using 'ChronoLocalDateTime.timeLineOrder()'

java spring

답변 2

1

토비

아마 아래 질문과 같은 상황이신 것 같네요.
https://inf.run/U9fwJ

 

now()를 기본 system clock에서 실행을 하면 매번 새로운 시간이 돌아오는 것으로 기대를 합니다. 그래서 제가 사용하는 맥에서는 아주 작은 시간이라도 now()를 호출 할 때마다 시간이 바뀝니다.
그런데 윈도우의 자바 내부 구현에서는 now()가 돌려주는 시간 최소 단위가 달라서 그런지, 이렇게 연속으로 now()를 실행하는 코드라면 정말 작은 시간차만 있어서 같은 시간이 돌아오기도 합니다.

위의 글을 읽어보시면 윈도우에서 now()를 30번 실행했더니 계속 같은 값이 나오다가 뒷 부분에서 시간이 바뀐다고 합니다. 그래서 이 테스트가 실패하네요.

테스트 중간에 Thread.sleep(100) 정도라도 넣어서 잠깐 대기했다가 now()가 다시 실행되도록 만들면 테스트가 성공할 겁니다.

OS마다 자바 언어 구현의 차이가 있기 때문에 발생하는 문제입니다.

한번 확인해보시고 그래도 궁금하신 점이 있으시면 알려주세요.

 

0

밍구

os 차이의 문제가 있었군요!

thread.sleep(1) 정도로 지정하니 테스트가 통과하였습니다.

항상 강의 잘 듣고있습니다.


감사합니다. :)

수업을 잘 듣고 있습니다.

0

103

2

jackson(3.0.2 버전) ObjectMapper.readValue 에러타입

0

108

2

템플릿과 콜백의 역할 경계를 구분하는 기준

0

99

1

테스트를 작성하지않아도 되는 경우

0

86

2

오브젝트 정의 중 배열에 대해서

0

63

2

스프링 레거시를 이용하는 회사에서 일을 하게 될것같은데

0

109

2

JpaTransactionManager에 대해 궁금합니다.

0

81

2

스프링빈과 Clock 클래스 관련

0

44

2

Seprate Interface 패턴에 대한 궁금증

0

46

2

테스트의 기준을 어떤식으로 설정하는 것이 바람직한 테스트일까요 ?

0

51

2

오브젝트와 인스턴스

0

38

1

WebApiExRateProvider 템플릿 콜백 패턴을 적용하면서 테스트 코드를 만들어보았습니다.

0

62

2

템플릿 콜백 패턴 관련하여 궁금한 것이 있습니다!

0

59

2

상태 변경 API 질문

0

120

2

빈에 대한 질문

0

97

1

Payment 엔티티에 exRateProvider 주입

0

101

1

@Transactional private 사용유무

0

156

1

JdbcClient 생성 질문

0

190

2

안녕하세요 PaymentConfig 질문드립니다.

0

110

2

[공유] 윈도우 사용자를 위한 http 명령어 오류 해결 방법

0

244

2

생성자 파라미터성자 파라미터

0

237

2

토비님 ! BigDecimal 관련 링크를 못찾겠어요

2

342

2

인터페이스 사용에 관하여 질문드립니다.

0

307

3

Order에서 JPA 메타데이터 분리 - XML 사용

0

257

2