Spring/🥸[spring]JPA+Thymeleaf+mariaDB

IT늦공 김부장_#6.JPA 단위 테스트

1son 2022. 11. 8. 09:18

대체적으로 이런 구조를 가진다. 

뭔가 요청을 하면 Controller가 Service를 호출하고 서비스가 Repository 연결하고 거기에서 DB를 가져오고 

다시 Service에 리턴하고 Contoller에 리턴하면 그 리턴 값을 모델에 담아서 View에 가져오고 

그럼 view는 최종적으로 화면에 보여주게 되어있음.

 

우리가 Controller는 문제 없는지.. Repository는 문제 없는지 .. 이런 부분들이 만들면서 궁금하다. 

하나하나 프로그램 단위로 단위 테스트를 클래스 단위로 테스트를 하지 않는다면 결국은 View에만 의존하게 된다. 

 

( 맞는 말이다. ..)

 

나중에 프로그램 오류가 발생하면 어느 구간에서 오류가 발생했는지 일일이 찾아야함..

 

우선 Repository가 아무 문제 없는지 확인해보겠다. 

 

Bean을 Repository로 만들고

@Atutowired써준다. 

앞전에 @Repository를 써줌으로써 Bean에 등록했으니까 Spring이 구동되면 이 객체를 IOC컨테이버 빈에 올려오는 것

그 올려온 걸 잡아와야함 

 

 

 

객체를 내가 테스트 하고 싶은 메서드 만들면 됨

findAll()=  다 받아와.

근데 여러 행 있기 때문에 List로 만들어주면 됩니다. 

 

 

 

이렇게 코드를 수정해서 하나의 행만 가져오는 것도 OK

스프링이 구동이 되고 이 자체만 테스트를 해준다 .

 

 

만들었던 JpaRepository의 개념 중에 select를 가지고 하는 걸 해봤음

단위별로 test가 가능하다.