JUnit 환경설정

jihan kong·2022년 8월 19일
0

JUnit5

목록 보기
2/25
post-thumbnail

본 시리즈는 메타 코딩님의 Junit 강의를 학습한 내용을 바탕으로 정리하였습니다.

지난 시리즈에서 단위 테스트 개발의 중요성 과 JUnit에 대해 간략히 학습했다. JUnit은 한마디로 자바 기반의 단위 테스트를 도와주는 프레임워크라고 생각하면 된다.

이번 포스팅에서 JUnit을 실행하기 위한 Spring 환경설정을 세팅해보자.

IDE는 Visual Studio code로 하게 되었다. 먼저 보기 탭의 명령 팔레트를 눌러서 명령 창을 띄운 후, Spring Initializr를 통해 Gradle Project를 생성하자.

이 후, 선택사항은 다음과 같다.

  • 버젼 : 2.7.3 (Stable)
  • 언어 : Java
  • 그룹 아이디 : site.metacoding (원하는 이름으로 해도 상관 없음)
  • 프로젝트 이름 : JUnit-project (원하는 이름으로 해도 상관 없음)
  • 패키지 타입 : Jar
  • JDK 버젼 : 11

의존성 설정


마지막으로 dependencies 설정이 나오는데 위의 다섯가지를 선택하면 된다. DB는 별도로 설치가 필요없는 H2 Database를 선택했다.

프로젝트 로드가 다 끝나면
build.gradle 파일에 코드하나를 추가해주는데 이는 배포에 관한 설정이다.

plugins {
	id 'org.springframework.boot' version '2.7.2'
	id 'io.spring.dependency-management' version '1.0.12.RELEASE'
	id 'java'
}

group = 'site.metacoding'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	compileOnly 'org.projectlombok:lombok'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
	runtimeOnly 'com.h2database:h2'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

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

// plain 파일 생성하지 않는 설정
jar {
	enabled = false
}

그리고 application.propertiesapplication.yml 로 이름을 변경해주기만 하면 기본적인 세팅은 끝이 났다.

강사님께서는 기본적으로 JUnit Test를 DB가 연결된 상태에서 진행하고 또한 Security Test를 진행하신다고 하셨다. 그리고 나중에 배포까지 해볼 예정이다.

TDD?

또한 이 강의는 TDD 개발 방식으로 진행하지 않는다.

TDD란 테스트 주도 개발(Test-Driven Development) 의 약자로 개발을 함에 있어서 프로덕션 코드(본 코드) 보다 테스트 코드를 먼저 작성하고 이후에 본 코드를 수정하는 방식이다.

이렇게 하면 수 많은 오류가 발생할 수 있는 가능성을 조기에 발견하고 미리 수정할 수 있다는 장점이 있다. 강사님께서 TDD 개발 방식을 따르지 않는 것은 이렇게 함으로써 정석적인 방식을 따라야겠다는 것을 직접 느끼도록 하기 위해 일부러 TDD로 하지 않는다고 하셨다.

어떤 방식이든 내가 직접 느끼고 선택하고 스스로 이에 맞는 피드백을 하는 것만큼 제대로 배우는 것이 또 없다고 생각한다.

profile
학습하며 도전하는 것을 즐기는 개발자

0개의 댓글