실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기

Ch01. 도서관리 애플리케이션 리팩토링 준비하기 - 테스트 코드?!

webmaster 2022. 10. 29. 15:52
728x90

테스트 코드란 무엇이고, 왜 필요한가?!

테스트 코드란?

  • 프로그래밍 코드를 사용해 무엇인가를 검증한다.
  • 자동으로(사람 손을 거치지 X) 테스트를 할 수 있다.

테스트 코드가 필요한 이유

  1. 개발 과정에서 문제를 미리 발견할 수 있다.
  2. 기능 추가와 리팩토링을 안심하고 할 수 있다.
  3. 빠른 시간 내 코드의 동작 방식과 결과를 확인할 수 있다.
  4. 좋은 테스트 코드를 작성하려 하다 보면, 자연스럽게 좋은 코드가 만들어진다.
  5. 잘 작성한 테스트는 문서 역할을 한다(코드리뷰를 돕는다)

예시

최초 개발자가 개발한 코드를 다른 개발자가 이어서 개발하게 된다면, 최초 개발자보다 이해도가 높지 않기 때문에 버그 확률이 높다 -> 테스트가 있다면, 버그 확률을 낮출 수 있다.

리펙토링을 진행하면서, 매번 수동으로 검증하면 시간이 오래걸린다 -> 테스트가 있다면 리펙토링을 안심하고 할 수 있다

코틀린 테스트 환경 구축

plugins {
    id 'org.springframework.boot' version '2.6.8'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
    id 'org.jetbrains.kotlin.jvm' version '1.6.21'
}

group = 'com.group'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
    runtimeOnly 'com.h2database:h2'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
    useJUnitPlatform()
}

compileKotlin {
    kotlinOptions {
        jvmTarget = "11"
    }
}
compileTestKotlin {
    kotlinOptions {
        jvmTarget = "11"
    }
}
  • plugin 추가 : id 'org.jetbrains.kotlin.jvm' version '1.6.21'
  • dependency 추가 : implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
  • compileKotlin, compileTestKotlin 추가 

의존성 추가후 main 밑에 kotlin 디렉토리, test 밑에 kotlin 디렉토리를 만들자

코틀린 의존성이 추가된 이후부터는 IDE에서도 특정 디렉토리임을 인식한다.

 

728x90