📙Language/🤖Kotlin

    [Kotlin] 테스트하기 어려운 부분을 분리하기

    AS-IS 정해진 시간 외에는 주문을 생성할 수 없다.(10:00~22:00) 위 요구사항을 만족하는 비즈니스 로직의 코드를 다음과 같이 작성할 수 있다. object Constants { val SHOP_OPEN_TIME = LocalTime.of(10, 0) val SHOP_CLOSE_TIME = LocalTime.of(22, 0) } fun createOrder(beverages: List): Order { val currentDateTime = LocalDateTime.now() val currentTime = currentDateTime.toLocalTime() if (currentTime.isBefore(Constants.SHOP_OPEN_TIME) || currentTime.isAfter(C..

    [PUDDY] 코틀린 Kotest로 테스트하기(w. BehaviorSpec)

    문제 상황 기존 퍼디 프로젝트를 코틀린으로 리팩토링을 하는 중입니다. 이전에 프로젝트를 진행할 때, 정해진 기한 내에서 모든 API를 구현해야 되기에 테스트 코드를 MVP별 남는 시간에 작성하기 급급했던 점이 마음에 걸렸습니다. 그래서, 리팩토링시에 TDD까진 아니더라도 테스트 코드 작성에 시간을 투자해 API 개발시마다 실행에 대한 검증과, 예외처리 항목에 대한 꼼꼼한 테스트를 진행하는 것이 좋을 것이라고 생각했습니다. 그러던 중 아래 게시글을 접하게 되었고, 코틀린으로 스프링 부트를 사용하는 것이 처음이라, 아직 코틀린 스타일을 자바를 사용할 때에 비해 크게 체감하지 못했지만, 앞으로 코틀린 학습을 진행하면 느끼리라 라는 생각을 하여 적용하게 되었습니다. https://techblog.woowahan..

    [Kotlin] 자바에서의 Switch, 코틀린에서의 When

    자바 - Switch 자바에서의 스위치문은 다음과 같이 작성할 수 있다. public String getGrade(int score) { switch (score/10) { case 9 : return "A"; case 8 : return "B"; case 7 : return "C"; default: return "D"; } } 코틀린 - When(Switch) 코틀린에서는 switch대신 when을 이용하여 제어문을 작성한다. fun getGrade(score: int): String { return when (score/10) { 9 -> return "A" 8 -> return "B" 7 -> return "C" else -> return "D" } } case 대신 ->를 통해 간편하게 작성할 수..