inblog logo
|
devleekangho
    기술정리

    [기술 정리] 16. Test에서 AssertJ 활용

    KangHo Lee's avatar
    KangHo Lee
    Dec 02, 2024
    [기술 정리] 16. Test에서 AssertJ 활용
    • AssertJ는 유연하고 가독성이 높은 어설션(Assertion) 라이브러리로, 단위 테스트에서 사용되는 다양한 어설션을 제공하는 도구입니다.
    • JUnit이나 TestNG와 함께 사용되며, 테스트 코드를 더욱 직관적이고 읽기 쉽게 만들어줍니다.

    주요 특징 및 장점

    1. 가독성 높은 코드
        • AssertJ는 자연어에 가까운 문법을 제공하여 테스트 코드의 가독성을 높입니다.
        • 예를 들어, assertThat(object).isEqualTo(expected)와 같은 형태로 어설션을 작성할 수 있습니다.
    1. 유연한 어설션
        • AssertJ는 객체의 상태를 확인하는 다양한 어설션 메서드를 제공합니다.
        • 개발자가 테스트하려는 조건을 명확하게 표현할 수 있도록 도와줍니다.
    1. 확장성
        • AssertJ는 사용자 정의 어설션을 쉽게 추가할 수 있는 확장성을 제공합니다.
        • 이를 통해 프로젝트의 특정 요구사항에 맞게 어설션을 커스터마이징할 수 있습니다.
    1. 체이닝
        • 어설션 메서드를 체이닝하여 여러 조건을 한 번에 테스트할 수 있습니다.
        • 이는 코드의 간결성과 명확성을 높입니다.
        assertThat(person) .hasName("John") .hasAge(30) .hasAddress("1234 Main St");
    1. 풍부한 컬렉션 어설션:
        • AssertJ는 컬렉션, 맵, 배열에 대한 다양한 어설션 메서드를 제공하여 복잡한 데이터 구조를 쉽게 테스트할 수 있습니다.
        assertThat(list) .isNotEmpty() .contains("element1", "element2") .doesNotContain("element3");

    AssertJ를 사용한 테스트 코드

    import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import java.util.Arrays; import java.util.List; public class MyTests { @Test public void testString() { String str = "Hello, world!"; Assertions.assertThat(str) .isNotNull() .startsWith("Hello") .endsWith("world!") .contains("world"); } @Test public void testList() { List<String> list = Arrays.asList("element1", "element2", "element3"); Assertions.assertThat(list) .isNotEmpty() .hasSize(3) .contains("element1", "element2") .doesNotContain("element4"); } }
    • 위 예제에서 Assertions.assertThat 메서드를 사용하여 문자열과 리스트에 대한 다양한 조건을 테스트합니다.
    • AssertJ의 체이닝 기능을 활용하여 여러 조건을 한 번에 테스트할 수 있습니다.
     
    Share article

    devleekangho

    RSS·Powered by Inblog