본문 바로가기
[개발] Test

JUnit

by Devsong26 2018. 1. 27.

JUnit이란? 

TDD 방법론에 의해 자바에서 테스트 코드를 작성할 때 사용하는 서바 사이드 테스트 도구이다. 

JUnit은 단정문(테스트의 성공과 실패를 판별하는 문장)인 assert 메소드를 이용하여 테스트를 진행하며 예상되는 결과와 실제 결과를 손쉽게 비교하여 코드가 정상적으로 수행되는지 확인할 수 있다.

그리고 JUnit을 통해 테스트 코드를 작성해 놓으면 자동화 테스트가 가능하기 때문에 수동으로 테스트하는 번거로운 상황을 피할 수 있으면, 테스트 코드가 테스트 이력이 남는 하나의 문서가 되기 때문에 테스트 케이스를 따로 만들 필요가 없다. 

 

 

JUnit의 특징

- 단위 테스트 Framework 중 하나

- 단정문으로 테스트 케이스의 수행 결과를 판별함.(assertEquals(예상 값, 실제 값))

- 어노테이션으로 간결하게 지원함

- 결과는 성공(녹색), 실패(붉은색) 중 하나로 표시

 

 

JUnit Maven 설정하기

pom.xml에서 아래와 같이 코딩한다.

 

 

JUnit 단정문

단정문은 여러가지가 있지만 대표적인 단정문은 아래 5개를 들수 있다.

- assertArrayEquals(a,b) : 배열 a와 b가 일치함을 확인

- assertEquals(a,b) : 객체 a와 b의 값이 같은지 확인

- assertSame(a,b) : 객체 a와 b가 같은 객체임을 확인

- assertTrue(a) : a가 참인지 확인

- assertNotNull(a) : a객체가 null이 아님을 확인

 

 

JUnit 어노테이션

- @Test 

@지정된 Method가 테스트 Method라는 것을 알릴 때 사용

지역변수로 생성된 객체는 @Test Method가 호출될 때마다 생성된다.

 

- @Test(expected=RuntimeException.class)

Test Method 안에서 발생될 것으로 예상되는 예외를 지정

 

- @Test(timeout=100)

Test Method의 수행시간이 지정된 timeout millisecond를 넘어서면 실패

 

- @Before

@Test Method가 실행되기 전에 반드시 한 번 수행되는 Method를 지정

@Test 메소드에서 사용되는 객체들을 셋팅할 때 사용하는 메소드이다.

 

- @After

@Test Method가 실행된 후에 반드시 한번 수행되는 Method를 지정

 

 

JUnit 테스트 코드

# 테스트 시나리오. 

1. 테스트를 위한 자바 파일을 생성

2. JUnit 테스트 코드를 작성 후 JUnit 메소드를 실행.

 

먼저 Package Explorer의 화면은 아래와 같다.

 

Maven으로 프로젝트를 만들면 test 폴더가 자동으로 생성되는데 거기에 Test파일을

생성하면 된다. Test 파일명은 테스트하고자 하는 자바 파일 이름+Test로 명명한다.

 

아래는 테스트할 단순한 자바 코드이다.

 

아래는 테스트 코드와 Junit 테스트 실행 방법이다.

 

 

성공을 할 경우에는 초록색 바가 보여지는 결과 창이 나온다. 

 

 

실패할 경우에는 빨간색 바가 보여지는 결과 창이 나오며, Failure Trace영역에는 

스트 실패한 파일의 위치를 가리킨다.

 

 

 

 

 

 

 

 


더 많은 내용을 보시려면 아래를 참고하세요.


블로그의 다른 글

 

Spring으로 다국어 페이지 만들기

회사 홈페이지를 다국어로 퍼블리싱을 해야 한다는 이야기를 듣고 나서 Spring을 이용한 다국어 페이지 만드는 방법을 여러가지 검색을 해보면서 구현을 해봤다. 나는 메세지 번들까지는 사용하

developer-syubrofo.tistory.com

 

Spring Lombok

이번에 새롭게 투입된 프로젝트에서는 lombok이라는 라이브러리를 사용하고 있다. 처음에는 이것의 존재를 모르고 있었는데, Github에서 프로젝트를 Cloning하고 Maven 업데이트를 했는데 프로젝트에

developer-syubrofo.tistory.com

 

[Java] Service, Controller 테스트

Junit으로 TDD를 실천하면서 어떻게 코드를 테스트 해야하는지 감이 잡혀온다. 알게 된 점은 아래와 같다. 1. 테스트 코드 작성법 2. 고민되는 부분 3. MockMvc의 사용법 4. Assert 사용법 1. 테스트 코드

developer-syubrofo.tistory.com

 

How to use(insert) spatial data in mysql and JPA.

Introduction I introduce how to use spatial type columns in MySQL and JPA. Subject I introduce how to use spatial type columns in MySQL and JPA. MySQL has spatial data types that correspond to OpenG..

developer-syubrofo.tistory.com

 

The unknown errors occur in pom.xml when using STS4

Introduction I start I made the new spring starter project in sts4. But I checked the unknown error in pom.xml. Subject Why do these errors occur? When the spring framework builds a..

developer-syubrofo.tistory.com

 

'[개발] Test' 카테고리의 다른 글

JUnit Test code setup  (0) 2023.11.13
과연 TDD를 제대로 알고 있는 걸까?  (0) 2022.03.27
Service, Controller 테스트  (0) 2018.08.05
TDD(Test Driven Development)  (0) 2018.01.23
JUnit - initializationError 해결하기  (6) 2017.12.09