TDD(Test Driven Development)

임유빈·2023년 11월 8일

개발자

목록 보기
22/26

TDD?

테스트를 먼저 진행한 후 구현하는 테스트 주도 개발 방식
main에는 기능을 구현한 소스코드, text에는 기능을 테스트하는 소스코드를 넣는다.

TDD의 3단계

RED : 실패하는 테스트 케이스를 작성
Green : 어떠한 꼼수를 써서라도 통과하는 테스트 케이스 작성
REFACTORING : 중복을 제거하고 통과한 코드 리팩토링

JUnit?

자바프로그램의 단위 테스트를 위한 대표적인 프레임 워크

JUnit 테스트 어노테이션

@Test : 단위 테스트 메소드임을 나타낸다.

@DisplayName : 테스트 클래스나 테스트 메소드에 이름을 붙여줄 때 사용한다.

@Before : @Before 어노테이션이 선언된 메소드는 @Test 메소드가 실행되기 전 반드시 실행한다. 
같은 환경에서 여러 메소드를 테스트하는 경우엔 단위테스트 수행 전 @AfterClass 어노테이션 선언으로 한번만 선언하면 된다.

@After : @After 어노테이션이 선언된 메소드는 @Test 메소드가 실행된 후 반드시 실행한다.
같은 환경에서 여러 메소드를 테스트하는 경우엔 단위테스트 수행 전 @BeforeClass 어노테이션 선언으로 한번만 선언하면 된다.

@Ignore : 테스트를 Skip한다.

Assert?

자바 JUnit의 테스트코드에 사용되어 테스트코드의 가독성과 편의성을 높여 주는 라이브러리

AssertThat() : 테스트를 통해 어떤 조건이 참인지를 검사하는데 사용된다.

public class MyTestClass {
    
    public static void main(String[] args) {
        List<String> fruits = Arrays.asList("apple", "banana", "melon");

        // "banana"가 fruits 리스트에 존재해야 함을 테스트
        assertThat(fruits, hasItem("banana"));
    }
}

AssertTrue() : 값이 True인지 확인할 때 사용하는 메소드이다.

public class Testcase {
    
    @Test
    public void testExample() {
        int number = 10;
        assertTrue(number > 5);
    }
}

AssertSame() : 두 객체가 동일한지 확인할 때 사용하는 메소드이다.

public class Testcase {
    
    public static void main(String[] args) {
        String str1 = "Hello";
        String str2 = str1;

        assertSame(str1, str2); 
    }
}

AssertEquals() : 실제 결과 값과 기대 값이 동일한지 확인하기 위해 사용한다.

public class Testcase {
    
    public static void main(String[] args) {
        int a = 5;
        int b = 5;

        assertEquals(a, b); 
    }
}

AssertNull() : 주어진 값이 'null'인지 확인하기 위해 사용한다.

public class Testcase {
    
    public static void main(String[] args) {
        String nullString = null;

        assertNull(nullString); 
    }
}
profile
주변 사람들과의 소통을 적극적으로 하는 친근한 개발자가 되기를 희망합니다.

0개의 댓글