상세 컨텐츠

본문 제목

78일 - 단위 테스트

수업 일지/Spring

by NayC 2021. 6. 10. 10:15

본문

728x90

테스트할 때마다 Controller에 작업을 해야하는 불편함이 있지.

Controller 만드는 사람 따로 있어서 내가 이 Controller 만지지 못하는 상황이라면? 

 

'단위 테스트'를 해보자

cf) 통합 테스트

 

* 단위 테스트할 수 있는 방법 * 

테스트툴 : 제이유닛?


pom 파일을 가보자.

우리가 추가해주지도 않았는데 저절로 포함되어 있었던 test ! 

 

내가 테스트하고 싶은 파일을 우클릭 > new > JUnit Test Case

이러면 아래 사진처럼 src/test/java에 (패키지와 함께) 쏙! 들어간다. 

 

테스트할 때는 이 페이지에서! 우클릭 > run 

//

 

Q. JUnit이란? 

-  이 실행을 도와주는 2가지를 제공. 

1) 애가 test할 main 함수라는걸 알려주는 @Test를 알려줌 

- 이게 있어야 실행해준다. 

  JUnit이 제공하는 @어노테이션.

2) 실패와 성공의 기준은 업무 다루는 사람에게 있을텐데... 

   -> 실패와 성공을 알려줌(?)

 

//

 

저 11번째줄 지워주면 성공했다고 나옴 ㅎㅎ 

 

진짜 테스트를 해보자. 

아까 Controller해서 해준 테스트

17번째줄에 선생님은 (list)임

근데 나는 아까 key 값을 줘야 실행되었으므로 여기서도 그냥 넣어주었다.

예를 들어! assertEquals(7, add(3,4));

 

스프링이 일어나야! MyBatis도 깨우고 그러는데 ..

JUnit은 스프링이 아니라 @Autowired가 안 됨...

그럼 19번째줄의 noticeDao를 어디서 얻어온담....

-> JUnit이지만 스프링을 깨우도록 하자! 

 

MyBatis가 JUnit에 플러그인 설치(?)를 할 수 있도록 도와줌 

-> 도구를 받자. 

http://mybatis.org/spring-boot-starter/mybatis-spring-boot-test-autoconfigure/index.html

 

or pom파일 열어서

dependecies > add 클릭 > mybatis .. 인데 검색한게 더 빨랐으므로 그냥 아래에 손수 넣어주었다 ㅎㅎ 

-> 이걸 추가해줬으므로 @MybatisTest 사용 가능!

근데 (선생님거는) 오류남

 

MyBatis 사용하려고 하는데

- 테스트 아니라 정말 개발! 할 때 사용하는 db를 정말 사용하겠냐고 에러 메시지가 묻는 중 

-> 우리는 그냥 있는걸 쓰겠다. 하면 추가로 @AutoConfigureTestDatabase 넣어준다. 

replace 옵션은 None으로 '대체해주지 않겠다'를 (우선) 선택함

 

그런데 오류남.

지호님 말처럼 18번째줄을 @SpringBootTest로 바꿔줬더니 되었다. 

 

@MyBatisTest라고 했었는데, 

-> 이건 딱 자기가 관여된! 녀석만 담아주는거라... 

    이건 딱 Dao만 테스트 할 때만 가능 (우리가 Dao 파일을 지금 테스트하고 있기 때문임. 공식 아님!) 

-> '전~체'를 테스트하려면 @SpringBootTest

 

이건 선생님 콘솔창

콘솔창에 나오는거 확인

 

30, 31번째줄처럼 테스트해볼 수 있겠지 ~ 

 

 

 

 

 

 

 

 

 

 

// 남겨진 내용이 중요하기에 test는 이렇게 소개 정도까지만 하겠다.

- 김영한 인강에서 다시 보고 해봐야겠당.

 

 

728x90
반응형

관련글 더보기