Java/Spring

테스트 케이스 (단위, 통합 테스트)

필리힐리 2021. 8. 21. 22:05

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/lecture/49582?tab=curriculum&speed=1 

 

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 학습 페이지

지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

www.inflearn.com

 

영한님 강의를 듣던 도중 나온 테스트 케이스 작성을 정리해봤습니다.

 

단위 테스트 - 동작 단위 단위 쪼개서 순수한 자바 코드만으로 테스트를 하는 것

통합 테스트 - 테스트에 스프링을 올려 놓고 테스트를 하는 것

 

어느 게 무조건 더 좋다라고 말하기는 힘들지만 통합 테스트 보단 단위 테스트를 하는 훈련을 할 것

 

통합 테스트

 

단위테스트

 

import org.assertj.core.api.Assertions

import org.junit.jupiter.api.Assertions

 

Assertions는 두가지 종류가 있는데

assertj의 경우 assertThat(A).isEqualTo(B)를 이용해 두 개의 값을 비교할 수 있다.

junit의 경우 assertEquals(A, B)를 이용해 두 개의 값을 비교할 수 있다.

 

 

좌측에 있는 run 버튼을 통해 테스트를 할 수 있다.

class 좌측 버튼은 클래스 안에 있는 케이스 전체를 테스트

케이스 좌측 버튼은 해당 케이스만 테스트

 

주의할 점

 

작성 순서대로 테스트가 동작하지 않아  기대했던 값이 나오지 않는 문제가 발생했다.

그렇기 때문에 테스트 케이스 실행 이후 저장소를 비워주는 메소드가 필요하다.

 

* 테스트는 작성 순서대로 동작하지 않는다. 

 

 

 

일반 클래스에 strore를 clear 해주는 메소드를 작성해주고

 

 

케이스가 끝날 때 마다 실행될 수 있게 어노테이션 @AfterEach가 적용된 메소드를 테스트 클래스에 넣어주면

 

 

문제 없이 테스트를 통과할 수 있다.

 

 

패키지 내 전체 케이스를 테스트 하고 싶다면 이곳에서 하면 된다.

'Java > Spring' 카테고리의 다른 글

자바 코드로 스프링 bean 직접 등록  (0) 2021.08.23
컴포넌트 스캔과 자동 의존관계 설정  (0) 2021.08.22
assertThrows  (0) 2021.08.22
Optional - 미완료  (0) 2021.08.22
API 방식 (객체 반환)  (0) 2021.08.21