코드스테이츠_국비교육/[Section3]

56.02_[Spring MVC] 테스팅(Testing)_실습 페어 및 궁금증_22.11.10

생각없이 해도 생각보다 좋다. 2022. 11. 11. 02:15

API 계층
서비스 계층
데이터액세스 계층

각각에 붙이는 애너테이션의 차이 명확히 설명


>mapper의 매핑도 모킹해야하는가?
관점에 따라 다르다.
mapper를 테스팅 범위에 포함하고 싶다면, 모킹을 안하면 된다. 모킹을 안하면 mapper가 잘 되는지도 테스팅이 된다.
mapper의 로직을 모킹한다면, 테스팅이 되지 않는다. 굳이 매핑까지 테스팅할 필요가 없다고 생각하면 mapper 로직도 모킹하면 된다.
후자가 좀 더 이론적으로는 완전한 테스팅이라고 생각같긴하다.

>Executable
>assertThrows

 

>given( ) 로직의 의미
: 가짜 객체을 이용해서 로직을 사용하겠다는 의미

>API 계층과 서비스 계층이 차이나는 이유
: API 계층은 Spring Boot으로 만들어야하지만 서비스 계층은 사실 Spring Boot을 이용하지 않아도 됨.
: 때문에 조금 차이가 난다.

>모킹 대상
: 실제 객체가 가진 로직 중 실행되지 않아야하는 곳을 모킹을 해야한다.
: 실행되어도 되는 곳, 혹은 실행되어야하는 곳은 모킹하지않아야한다.
: 애초에 테스트 실행 자체가 해당 계층을 실행시키는 것이라고 생각하면 조금 편하다.

궁금증
>Test 내에서의 @Transactional 구체적 설명