본문 바로가기
학습/Java

[java] 테스트를 도와주는 JUnit / assertJ / h2

by KKambi 2020. 2. 9.

책1을 실습하는 스프링 부트 프로젝트에선 Spring Boot 2.1.7 버전을 사용했다.

 

 

JUnit

1. 자바의 대표적인 Testing Framework (Mocha나 Jest 생각하면 될 듯)

2. 다양한 언어를 지원하는 xUnit의 자바 버전

3. JUnit5까지 나왔지만, 대부분의 회사에서 JUnit4로 테스트

4. spring-boot-starter-test를 의존성에 추가하면 JUnit을 사용할 수 있다.

-> Before 2.2.0: JUnit 4 포함

-> From 2.2.0: JUnit 5 포함

 

 

JUnit의 유용한 메소드 및 어노테이션

setUp()

- 테스트 대상 클래스 실행 전, 가장 먼저 setUp()을 실행한다. (네트워크 연결, DB 커넥션 등)

 

tearDown()

- 테스트 대상 클래스의 마지막에 수행된다. (네트워크 연결 종료, DB 커넥션 종료 등)

- setUp()과 tearDown()은 테스트 케이스를 진행할 때마다 실행

(계속해서 Unit test해가니까!)

 

@Test

- 테스트 대상 메소드임을 의미

 

@BeforeClass / @AfterClass

- 해당 테스트가 시작되기 전에 / 이후에, 단 한번만 수행되도록 지정

 

@Before / @After

- 함수버전

- @After의 경우, 테스트할 때 사용하는 In-memory DB H2을 clear하는데 사용된다.

 

@Ignore

- 테스트 케이스를 무시할 수 있다.

 


AssertJ

1. assertion 메소드를 제공하는 자바 라이브러리

2. JUnit의 assertion 메소드에 비해, 에러 메세지와 테스트 코드의 가독성이 높다. (by 메소드 체이닝)

3. JUnit과 마찬가지로 spring-boot-starter-test를 의존성에 추가하면 사용할 수 있다.

 

 

AssertJ의 유용한 메소드

- 문자열 관련

isEqualTo( )

 

startsWith( )
endsWith( )

 

contains( )

doesNotContain( )

 

isNotEmpty( )

 

- 숫자 관련

isPositive( )
isGreaterThan( )
isLessThan( )

 

- 시간 관련 (LocalDateTime)

isBefore( )

isAfter( )


h2

- In-memory RDB

- 별도 설치 없이, 의존성 추가만으로 사용 가능

- 메모리에서 실행 -> 어플리케이션 재시작마다 초기화 -> 테스트 용도로 사용!

dependencies {
	compile('com.h2database:h2')
}

 


출처

https://nesoy.github.io/articles/2017-02/JUnit

https://pjh3749.tistory.com/241

댓글