Kotest Test Clock 확장
Test Clock 확장에 대해서 설명한다.
JVM은 인스턴스를 생성하는 데 사용되는 java.time.Clock
인터페이스를 제공한다. 시간에 의존하는 코드가 있는 경우 Instant.now()
또는 System.currentTimeMillis()
같은 것을 사용하는 대신 Clock을 사용하여 값을 생성할 수 있다.
그런 다음 테스트에서 고정 또는 제어 가능한 시계를 제공하여 테스트가 실행될 때마다 시간이 변경되는 문제를 방지할 수 있다. 실제 코드에서는 Clock.systemUTC()
등의 인스턴스를 제공하면 된다.
NOTE
다음 모듈이 필요하다: 빌드에io.kotest.extensions:kotest-extensions-clock
최신 버전은 maven central에서 검색한다.
이를 사용하기 위해 인스턴트와 영역 오프셋을 전달하는 TestClock
의 인스턴스를 생성한다.
val timestamp = Instant.ofEpochMilli(1234)
val clock = TestClock(timestamp, ZoneOffset.UTC)
다음과 같이 기간을 허용하는 plus
, minus
를 통해 clock를 제어할 수 있다.
clock.plus(6.minutes)
시계는 변경 가능하며 plus
또는 minus
를 사용하면 내부 상태가 변경된다는 점에 주의해야 한다.
참조
최종 수정 : 2024-04-21