인프런 커뮤니티 질문&답변

이승민님의 프로필 이미지
이승민

작성한 질문수

Practical Testing: 실용적인 테스트 가이드

반환 타입이 void인 메서드에 대한 질문이 있습니다.

해결된 질문

작성

·

258

·

수정됨

0

안녕하세요 강의 잘 듣고 있습니다!

 

위 사진처럼 Service 레이어에서 반환 타입이 void인 메서드의 경우, assertJ로 검증하는 방법이 있나요? 해당 메서드에서 create 작업을 수행하지만 굳이 생성된 객체를 응답할 이유가 없어서요!

예전에 임시로 반환 타입을 바꿔서 생성된 객체를 검증하는 식으로 테스트를 작성하면 된다는 얘기를 들었는데, 결국 void로 되돌리게 되면 테스트가 실패하니까 테스트를 주석 처리할 수 밖에 없었거든요...이렇게 하게 되면 테스트 코드를 작성하는 의미도 좀 퇴색되는 것 같아서 고민이 됩니다!

일단은 급한대로 then은 비워두었습니다만 이렇게 하는 게 좋은 방법일까요?

답변 1

1

박우빈님의 프로필 이미지
박우빈
지식공유자

안녕하세요, 이승민 님!

먼저, 말씀주신 내용처럼 임시로 반환타입을 바꿔서 검증하고 테스트를 주석처리하는 방법 은 권하지 않습니다.
강의 전반적으로 제가 강조드린 부분이기도 하지만, 프로덕션 코드와 맞물려서 프로덕션 코드를 뒷받침하지 않는 테스트 코드는 무용지물이기 때문입니다.

void 타입의 메서드 시그니처는 반환값이 없다보니 테스트하기가 어려운데요.
들어주신 예시에서는, 통합테스트 관련 강의에서 말씀드렸던 것처럼 ReviewRepository를 통해 데이터를 조회하여 의도한대로 Review 데이터가 저장이 잘 되었는지를 검증할 수 있을 것 같아요. ㅎㅎ

감사합니다. 🙂

이승민님의 프로필 이미지
이승민
질문자

답변 감사합니다!

이승민님의 프로필 이미지
이승민

작성한 질문수

질문하기