인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

JaeWon Kim님의 프로필 이미지

작성한 질문수

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

Q. 테스트에서만 필요한 메서드가 생겼는데 프로덕션 코드에서는 필요 없다면?

Static한 Utill성 클래스는 어떻게 테스트 할 수 있나요?

작성

·

133

·

수정됨

0

개발을 하다보면 utill성 클래스도 테스트하고 싶은데

 

배운거는 spring을 띄워서 테스트 하는데

 

static도 비슷하게 작성하면 되는건지

 

아니면 이것도 private에서 이야기 하신거처럼 신경 안써도 되는 부분일까요?

 

좀 더 좋은 방법이 있을거 같아서 여쭤봅니다

답변 2

1

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

안녕하세요, JaeWon Kim 님!

static 한 Util 클래스는 한번 잘 생각해보면, 스프링을 띄울 필요가 없습니다.
강의 초반에 소개드렸던 단순한 단위 테스트로 Util 클래스의 테스트 코드를 쉽게 작성할 수 있어요.

감사합니다 🙂

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다.

JaeWon Kim님, static한 util성 클래스의 경우, Spring과 같이 애플리케이션 컨텍스트를 사용할 필요가 없습니다. 이러한 클래스는 종종 비즈니스 로직에 의존하지 않는 단순한 기능을 하기 때문에, 간단한 JUnit 테스트를 사용하여 직접 테스트할 수 있습니다.

  1. JUnit을 사용한 테스트: static 메소드는 인스턴스 없이 호출할 수 있으므로, JUnit 테스트 클래스 안에서 static 메소드를 직접 호출하여 테스트하면 됩니다.

  2. Mock 객체 사용: 만약 테스트하고자 하는 util 클래스가 외부 종속성에 의존하고 있다면, Mockito와 같은 라이브러리를 사용하여 모의 객체를 만들어 의존성을 주입할 수 있습니다.

  3. 테스트 방법: private 메소드와 달리, static 메소드는 접근 제어자가 public인 경우 직접 호출하여 테스트 가능하기 때문에 일반적으로 이러한 메소드는 테스트하기가 용이합니다.

이는 Spring과 같은 프레임워크를 초기화하지 않아도 빠르고 독립적으로 테스트를 할 수 있는 장점이 있습니다. 귀하께서 말씀하신 private 메소드보다 훨씬 쉽게 테스트가 가능하니, 탐구해 보시기 바랍니다.

혹시 다른 질문이 있으시면 언제든지 말씀해 주세요!

참고 문서:
- Spring Boot Reference Documentation - Testing