본문 바로가기

Language24

[kotlin/mockk] mockStatic 해제하기 - clearStaticMockk internal class MockkStaticTest { @Test fun `현재 시간 mock 테스트`() { mockkStatic(LocalDateTime::class) every { LocalDateTime.now() } returns LocalDateTime.of(LocalDate.of(1993, 1, 10), LocalTime.of(11, 57)) LocalDateTime.now().let { it.year shouldBe 1993 it.month shouldBe Month.JANUARY it.dayOfMonth shouldBe 10 } } @AfterEach fun clearStaticMockkLocalDateTime() { clearStaticMockk(LocalDateTime::class.. 2022. 1. 26.
[kotlin/mockk] mockk로 LocalDatetime.now() mock 테스트 @Test fun test() { val testLocalDateTime = LocalDateTime.of(1993,1,10,11,57) mockkStatic(LocalDateTime::class) every { LocalDateTime.now() } returns testLocalDateTime LocalDateTime.now() shouldBe testLocalDateTime }mockkStatic : makes a static mock out of a class, or clears it if it was already transformed 출처 mockk.io 2022. 1. 12.
[Kotlin] Java Scripting API (JSR-223) JSR-223 Kotlin은 Java scripting engine을 사용하기 위한 툴로 Java Scripting API를 지원한다. 원래 우리의 프로젝트에서는 Java scripting engine으로 Nashorn을 사용했었는데, 이게 jdk11부터 deprecated(관련 링크 - https://openjdk.java.net/jeps/335) 되면서 다른 대안이 필요해졌다. 그래서 서치하다 보니 Kotlin에서 제공하는 Java Scripting API(JSR-223)가 있었다. Kotlin 1.1 버전부터 지원한다. 우리는 이미 백엔드 서버 개발을 Kotlin으로 하고 있었기 때문에 큰 변경 없이 이를 사용할 수 있었다. 제공하는 기능은 Nashorn과 거의 유사하다. 사용자가 작성한 스크립트 .. 2019. 10. 19.
Kotlin에서 Util 함수 작성하기 - Top-Level Functions Java에서 Util 함수를 만들 때는 주로 Util class를 만들어서 사용하였다. 이런 Util 작성 패턴을 Kotlin에서 그대로 사용하면 아래와 같은 코드가 된다. // Don't object MapUtils{ fun Map2JsonString(map: mutableMap) : String{ return objectMapper.writeValueAsString(map) } } // Usage val map: MutableMap = mutableMapOf("K" to "V") MapUtils.Map2JsonString(map) // {"K":"V"} 하지만, Kotlin에서는 Top-Level Function을 대신 사용하는 것이 좋다. Java에서와 같이 추가로 Util class를 작성할 필요.. 2019. 10. 14.