inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

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

192

JaeWon Kim

작성한 질문수 10

0

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

 

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

 

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

 

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

 

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

spring tdd jpa mockito 소프트웨어-테스트 junit5

답변 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

private 상수 테스트 관련 질문

0

83

1

void는 어떻게 테스트하나요..? void로 애초에 코딩하면 안되나요??

0

125

2

커버리지는 어떻게 활용하시는지 궁금합니다.

0

160

2

테스트 문서화 질문입니다

0

105

2

단위테스트 질문이 있습니다

0

96

2

컨트롤러는 모킹을 한 이유가 궁금합니다.

0

100

2

ERD 가장자리에 있는 도메인 테스트 질문

0

87

2

DTO 검증 필드에 대한 테스트 코드 작성은 어디까지?

0

135

2

OrderCreateRequest DTO에 대해서 궁금한점

0

102

2

고전파의 테스트 대역 사용 대상, 공유 의존성

0

155

2

계층 관련 질문이 있습니다.

0

138

3

'코틀린'에서는 빌더를 따로 쓰지 않는데, 이 때는 어떻게 test fixture를 만드시는지 궁금합니다

1

123

2

혹시 update 로직은 어떻게 테스트하나요? (@Setter?)

0

134

2

단위테스트와 통합테스트의 경계가 궁금합니다.

0

228

2

Service+Repository 통합테스트 관련 질문입니다.

0

150

2

OrderControllerDocsTest 작성 해봤는데요. 날짜 형식이 이상하게 나와요

0

184

2

test 용 .yml

0

90

2

throws Exception

0

79

2

카페키오스크 클래스 문의 ,,

0

87

2

Rest docs 문서용 테스트코드를 따로 작성해야 되나요?

0

173

2

테스트 코드에서 필요한 생성자

0

138

1

tearDown 순서

0

116

2

@Builder 생성자 private

0

136

2

@DisplayName gradle / intellJ

0

93

2