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

Gandhi Mahatma님의 프로필 이미지
Gandhi Mahatma

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

회원 관리 웹 애플리케이션 요구사항

Junit의 test 클래스의 의존관계에 대한 궁금증

작성

·

186

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오) 아니오
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)


[질문 내용]
여기에 질문 내용을 남겨주세요.

Junit 관련 질문입니다.

Junit에서 test시 객체가 생성되어야 되는데

따로 컨테이너를 관리하지 않는데 어느범위까지 미리 싱글톤 인스턴스를 만들어서 정상작동되는건가요?

본 강의의

test 클래스에서

싱글톤 객체를 그냥 getInstance()메서드(# 객체 자체 인스턴스를 가져오는 메서드)를 통해서 사용을하는데

언듯 생각하기엔 독립된 test 내에 해당 객체를 사용하기 위해선 선언을 먼저해주거나 컨테이너에서 관리가 되어야 될것 같아서 어떤 로직인지 궁금해 질문드립니다.

 

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.

JUnit은 단위 테스트를 위한 프레임워크로, 테스트 메서드를 실행할 때마다 새로운 객체를 생성하지 않습니다. 각각의 테스트 메서드가 독립적으로 실행될 수 있도록 하기 위해 JUnit은 테스트 클래스의 객체를 매번 새롭게 생성하지 않고, 단일 객체를 생성하고 해당 객체를 여러 테스트 메서드에 공유합니다.

따라서, JUnit에서는 일반적으로 싱글톤 인스턴스를 만들어서 테스트 메서드에서 사용해도 문제가 되지 않습니다. 이렇게 하면 여러 테스트 메서드에서 동일한 상태를 공유할 수 있으며, 테스트들이 독립적으로 실행되는 것을 확인할 수 있습니다.

JUnit에서는 @BeforeEach 어노테이션을 사용하여 각 테스트 메서드가 실행되기 전에 객체를 초기화하거나 설정할 수 있습니다. 이를 활용하여 각 테스트 메서드가 독립적인 상태를 가질 수 있도록 할 수 있어요.

따라서, 당신이 언급한 방식대로 getInstance() 메서드를 통해 싱글톤 객체를 사용하는 것은 JUnit에서 흔히 사용되는 방식 중 하나입니다.

더 자세한 내용은 JUnit 공식 문서나 관련 자료를 참고해보시면 좋을 것 같아요. 좋은 공부 되세요!

Gandhi Mahatma님의 프로필 이미지
Gandhi Mahatma

작성한 질문수

질문하기