단위 테스트 (Unit Test)

컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차다.

즉, 모든 함수와 메소드에 대한 테스트 케이스를 작성하는 절차를 말한다.

이를 통해서 언제라도 코드 변경으로 인해 문제가 발생할 경우, 단시간 내에 이를 파악하고 바로 잡을 수 있도록 해준다.

이상적으로 , 각 테스트 케이스는 서로 분리되어야 한다. 이를 위해 가짜 객체를 생성 하는 것도 좋은 방법이다.


이점 (왜 작성해야 할까?)

  • 단위 테스트는 개발단계 초기에 문제를 발견하게 도와준다.
  • 단위 테스트는 개발자가 나중에 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 기존 기능이 올바르게 작동하는지 확인할 수 있다. (회귀 테스트)
  • 단위 테스트는 기능에 대한 불확싱성을 감소 시킬 수 있다
  • 단위 테스트는 시스템에 대한 실제 문서를 제공한다. 즉, 단위 테스트 자체가 문서로 사용 할 수 있다

 


프레임워크

 

가장 대중적인 테스트 프레임 워크는 xUnit 으로 개발환경(x)에 따라 Unit 테스트를 도와주는 도구라고 생각하면 된다.

 

xUnit 프레임워크

 

  • JUnit - Java
  • DBUnit - DB
  • CppUnit - C++
  • NUnit -. net

 

 

'프로젝트 > 스프링 부트 웹서비스' 카테고리의 다른 글

의존성 관리  (0) 2020.12.03

IDE (통합 개발 환경)

 

Intellij 

 

이때까지 이클립스만 사용했었는데,

 

이번에 첨으로 인텔리제이를 사용하게 되었다.

 

인텔리제이는 네이버,카카오,라인,쿠팡,우아한형제들 등 많은 IT 서비스 회사에서 사용한다고 하니

 

이번 기회에 익혀두면 좋을 것 같다.

 


의존성 설정

build.gradle

buildscript {
    ext {
        springBootVersion = '2.4.0.RELEASE'
    }
    repositories {

        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.4.0")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'



group 'org.example'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8


repositories {
    mavenCentral()
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
    compile('org.springframework.boot:spring-boot-starter-web')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

test {
    useJUnitPlatform()
}

 

  • ext : build.gradle에서 사용하는 전역변수를 설정한다 (springBootVersion 이라는 전역변수 생성)
  • apply plugin : 자바와 스프링 부트를 사용하기 위해 추가해야 한다. 특히 io.spring.dependency-management 플러그인은 스프링 부트의 의존성들을 관리해주는 플러그인이다
  • repositories : 각종 의존성(라이브러리)들을 어떤 원격 저장소에서 받을지 정한다.
  • dependencies : 프로젝트 개발에 필요한 의존성을 선언 하는 곳

'프로젝트 > 스프링 부트 웹서비스' 카테고리의 다른 글

단위 테스트  (0) 2020.12.04

+ Recent posts