본문 바로가기

개발 일지

[TIL] 사이드 프로젝트 17일차

1. 개발 진행 상황

- 테스트 코드

 

what?

각 클래스마다 테스트를 하잖아?

예를 들어 컨트롤러를 테스트한다.

 

컨트롤러단 단위 테스트

 

단위테스트를 더 작게 쪼갠다고 생각하면 메소드마다 테스트가 나와야 되는 거지

 

 

게시글 작성

 

내가 구현한 컨트롤러는 requestPost, image, member 를 받고

서비스로 넘기고

서비스에서 받은 것을 응답 dto에 넣어서 반환하는 것 

 

 

그러면 

서비스를 스텁(?)으로 만들어서 응답해주기

스텁은 실제 기능 구현하지않고 원하는 값을 응답하게 할 수 있는 대역이니까!

 

그리고 상황 설정

requestPost, image, member값을 제대로 받지 못한 경우 

requestPost 통으로 null, empty, " " 빈 문자열

requestPost 필드 중 필수 필드 값이 없는 경우, null로 들어온 경우, 빈 문자열인 경우 + 필드 중 카테고리 필드는 enum 임 해당 값 안들어온 경우

image 값이 안들어온 경우, 이미지 형식이 잘못된 경우, 용량 초과인 경우, 

member 값이 안들어온 경우, 작성 권한이 없는 경우?는 없음, 로그인 된 값을ㅇ 받는 어노테이션을 쓰기 때문에

 

그리고 어떻게 해결해야하는 지 모르겠는게

member가

@AuthenticationPrincipal UserDetailsImpl userDetails

요렇게 받는데 이걸 테스트 어떻게 구현하는지 모름;;

뭐 혼자 방법은 어케 찾긴하겠지만... 임의로 값을 설정해준다거나 ? 그런식;;;???

근데 그럼 테스트의 의미가...?

방법을 찾아야겠당...ㅍ

 

 

2. 개발 중 발생한 이슈와 해결

> Task :test
org.junit.platform.launcher.core.EngineDiscoveryOrchestrator lambda$logTestDescriptorExclusionReasons$7
INFO: 0 containers and 2 tests were Method or class mismatch

 

해결방법

Settings -> Build, Execution, Deployment -> Build Tools -> Gradle 에서

Build and run using Run tests using의 속성을 Intellij IDEA

 

위 처럼 설정을 바꾸지 않았을 때

테스트 Method를 2개 작성하였는데 2개중 1개만 실행하였을 경우 위와 같은 Info Message 가 발생한다고함, 테스트 코드를 모두 실행하면 위와 같은 메시지가 발생하지 않음