상세 컨텐츠

본문 제목

[JAVA Spring] JUnit을 활용한 테스트 코드 작성

JAVA Spring

by theseung 2022. 11. 1. 23:08

본문

반응형

 - JUnit5 : 자바 테스팅 프레임워크

 - AssertJ : 테스트 코드 가독성 라이브러리

 

테스트 코드 작성 이유

 - 코드의 결함을 발견하기 위험

 - 코드 리팩토리싱 시 안정성 확보

 

TDD : Test Driven Development (테스트 주도 개발) 

 - 프로덕션 코드보다 테스트 코드를 먼저 작성하는 개발 방법

 

BDD : Behavior Driven Development (행위 주도 개발) 

 - 시나리오 기반으로 테스트 코드 작성

 

1. 프로젝트 생성

2. AssertJ 설치 (build.gradle)

dependencies {
   	...
    testImplementation 'org.assertj:assertj-core:3.23.1'
}

- 설치 완료 시 External libraries에 확인

 

3. 테스트 코드 작성 (테스트 폴더 생성) 

 - 테스트코드 작성 시에는 일반 패키지와 구조 맞춰주는것이 좋음

 - 테스트코드 작성 시에는 경계 부분 테스트 (예를 들어 비밀번호 길이가 4~12자 가능이라면 3자랑 13자 모두 테스트)

...
public class PasswordValidatorTest {

    @DisplayName("비밀번호가 최소 8자 이상, 12자 이하면 예외가 발생하지 않는다.")
    @Test
    void validatePasswordTest() {
        assertThatCode(() -> PasswordValidator.validate("serverwizard"))
                .doesNotThrowAnyException();
    }

    @DisplayName("비밀번호가 길이 조건에 맞지 않는 경우 에러가 발생한다.")
    @ParameterizedTest
    @ValueSource(strings = {"aabbccd","aabbccddeeffg"})
    void validatePasswordTest2(String password) {
        assertThatCode(() -> PasswordValidator.validate(password))
                .isInstanceOf(IllegalArgumentException.class)
                .hasMessage("비밀번호는 최소 8자 이상 12자 이하여야 한다.");
    }
}

ParameterizedTest작성 가이드

 

 

 

 

반응형

관련글 더보기

댓글 영역