AssertJ의 assertThat()
AssertJ는 JUnit 테스트 코드에 사용되어 많은 Assertion을 제공하는 자바 라이브러리입니다.
이는 에러 메세지와 테스트 코드의 가독성을 높여주는 장점이 있습니다.
모든 테스트 코드는 asssertThat() 메서드에서 출발합니다.
다음과 같은 형식으로 AssertJ에서 제공하는 다양한 메서드를 연쇄 호출하며 코드를 작성할 수 있습니다.
- isEqualTo(Object o) : equals()로 실제값이 기대값과 내용이 같은지 검증
- isNotEqualTo(Object o) : equals()로 실제값이 기대값과 내용이 다른지 검증
- isInstanceOf(Class<?> type) : 실제값이 기대값 타입의 인스턴스인지 검증
- isNotInstanceOf(Class<?> type) : 실제값이 기대값 타입의 인스턴스가 아닌지 검증
- isSameAs(Object o) : ==으로 실제 값이 기대값과 주소값(참조값)이 같은지 검증
- isNotSameAs(Object o) : ==으로 실제 값이 기대값과 주소값(참조값)이 다른지 검증
assertThat(target).메서드1().메서드2().메서드3();
JUnit의 Assert 함수
Kotlin에는 다양한 assert가 있는데 자주 사용되는 것에는 다음이 있습니다.
- assertEquals, assertNotEquals
- assertTrue, assertFalse
- assertThrows, assertDoesNotThrow
- assertNull, assertNotNull
assertEquals와 assertNotEquals
assertEquals와 assertNotEquals는 인스턴스의 동등성 비교를 위해 사용합니다.
assertEquals의 앞에는 나오기 기대되는 값이 오며, 뒤에는 테스트 결과가 옵니다.
만약 둘의 값이 같다면 테스트가 통과되고, 다르다면 테스트가 실패합니다.
assertNotEquals는 나오면 안되는 값이 앞에 오며, 테스트 결과가 뒤에 옵니다.
만약 둘이 다르다면 테스트가 통과되고, 같다면 테스트가 실패합니다.
Assert.assertEquals("a", "b")
Assert.assertNotEquals("a", "b")
assertTrue와 assertFalse
assertTrue와 assertFalse는 참과 거짓 확인을 위해 사용합니다.
assertTrue의 입력으로 참이 오면 테스트가 통과하고, 거짓이 오면 테스트가 실패합니다.
assertFalse는 그 반대로 입력으로 거짓이 와야 테스트가 통과하고, 참이 오면 테스트가 실패합니다.
Assert.assertTrue(true)
Assert.assertFalse(false)
assertThrows와 assertDoesNotThrow
assertThrows와 assertDoesNotThrow는 예외 발생 확인을 위해 사용합니다.
assertThrows는 첫째 파라미터로 발생할 예외를 특정하며, 둘째 파라미터는 람다식으로 특정한 메서드를 실행합니다.
만약 해당 메서드에서 첫째 파라미터의 예외를 발생시키면, 테스트가 통과합니다.
assertDoesNotThrow는 assertThrows의 둘쨰 파라미터처럼 람다식으로 특정한 메서드를 실행합니다.
해당 메서드에서 예외가 발생하지 않는다면, 테스트가 통과합니다.
Assert.assertThrows<IllegalArgumentException> {
controller.checkString("abcd")
}
Assert.assertDoesNotThrow {
controller.checkString("abcd")
}
assertNull과 assertNotNull
assertNull과 assertNotNull은 파라미터로 받는 값이 null인지 여부를 확인하기 위해 사용합니다.
assertNull의 입력으로 null이 오면 테스트가 통과하고, null이 아닌 값이 오면 테스트가 실패합니다.
assertNotNull은 그 반대로 입력으로 null이 아닌 값이 와야 테스트가 통과하고, null이 오면 테스트가 실패합니다.
Assert.assertNull(null)
Assert.assertNotNull("a")
'기타 > 우테코' 카테고리의 다른 글
[우테코] 프리코스 4주차 미션 - 크리스마스 프로모션 (0) | 2023.11.16 |
---|---|
[우테코] 프리코스 3주차 미션 - 로또 (0) | 2023.11.10 |
[Kotlin] JUnit으로 테스트 코드 작성하기 (0) | 2023.11.07 |
[우테코] 프리코스 2주차 미션 - 자동차 경주 (0) | 2023.11.03 |
[우테코] 프리코스 1주차 미션 - 숫자 야구 (0) | 2023.10.27 |