배경
새로운 언어(jvm 기반이지만..)인 Kotlin에 도전! java언어의 단점을 보완한, jvm기반의 좀 더 modern한 언어이다. java에 익숙한 사용자라면 금방 배울 수 있다고 해서.. 도전을 해보기로 했다!
kotlin을 학습하면서 java랑 차이점이 있는 부분 또는 기록해두면 좋을 부분에 대해 정리해보려고 한다.
Junit5 Test
단언문 (Assertions)
assertThat
•
hasSize
•
extracting(”field”).containsExactlyInAnyOrder(”A”, “B”)
assertThrows (Assertions.assertThatThrownBy)
Kotlin으로 Test코드를 작성하던 도중, 자바와 같이 Assertions.assertThatThrownBy 를 사용해 코드를 작성하게되면 에러가 발생한다. java의 class를 사용한 검증이라 kotlin 문법과 맞지 않게 느껴진다. 이 대신 아래와 같이 assertThrows를 사용하면 kotlin 스타일의 예외처리 코드를 작성할 수 있다.
AssertEquals
@Test
fun divideExceptionTestWithMessage() {
//given
val calculator = Calculator(5)
// when
val message =assertThrows<IllegalArgumentException>("예외가 발생해야 한다"){
calculator.divide(0)
}.message
//then
assertEquals(message, "0으로 나눌 수 없습니다")
assertThat(message).isEqualTo("0으로 나눌 수 없습니다")
}
Kotlin
복사