inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

회원 서비스 테스트

회원서비스테스트 BeforeEach AfterEach

423

hci inha

작성한 질문수 2

0

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

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

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

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

  1. MemberServiceTest에서 BeforeEach에서 새로 객체를 불러오고 AfterEach에선 다음 테스트를 위해 저장된걸 지우는걸로 이해를 했는데

    어차피 객체를 새로 만드는데 지우는 과정이 왜 필요한건가요?

     

  2. 그래서 AfterEach 코드를 지워봤는데 회원가입()에서부터 막히더라고요

    AfterEach는 테스트가 끝나고 실행되는건데 왜 첫번째 테스트부터 작동에 문제가 생기는건가요?

 

java spring mvc spring-boot

답변 1

0

인프런 AI 인턴

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

MemberServiceTest에서 BeforeEach에서 새로 객체를 불러오고 AfterEach에서 저장된 객체를 지우는 이유는 각각의 테스트 케이스를 독립적으로 실행하기 위해서입니다.

테스트를 독립적으로 실행하기 위해서는 각각의 테스트가 서로에게 영향을 주지 않도록 해야 합니다. BeforeEach와 AfterEach는 실행 순서상 첫번째 테스트 이전과 마지막 테스트 이후에 실행되는 메서드입니다. BeforeEach에서는 새로운 객체를 생성하여 테스트를 위한 초기 상태를 설정하고, AfterEach에서는 테스트가 실행된 후에 생성된 객체를 정리하는 역할을 합니다.

AfterEach를 제거하면 첫번째 테스트 이후에 객체가 계속해서 유지되므로 두번째 테스트부터는 이전 테스트 결과에 영향을 받을 수 있습니다. 따라서 첫번째 테스트부터 작동에 문제가 발생할 수 있습니다.

이렇게 각각의 테스트를 독립적으로 실행하여 안정성을 보장하고 예상치 못한 결과를 방지할 수 있습니다.

구체적인 코드가 없어서 정확하게 어떤 문제가 발생하는지 파악하기 어렵지만, BeforeEach와 AfterEach를 사용하여 테스트를 독립적으로 실행하는 것이 좋습니다. 만약 테스트가 정상적으로 작동하지 않는다면, MemberServiceTest 내부의 코드를 중심으로 디버깅해보시는 것을 추천드립니다.

더 궁금한 점이 있다면 추가로 질문해주세요. 좋은 하루 보내세요!

..

0

76

2

Unused property.....

0

101

2

project JDK is misconfigured

0

132

2

외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석

0

83

2

단위/통합 테스트 버전충돌 문제

0

91

2

❗️springboot 4.0.2 버전 aspectj dependency 설정❗️

0

230

1

왜 컨트롤러는 변한게 없는데 새로 만든 html 파일이 뜨나요?

0

104

2

윈도우 build test오류 질문

1

102

2

테스트 관련 공부에 대한 조언을 얻고 싶습니다

0

101

2

테스트 실행 시 에러 질문

0

292

1

name을 통한 비교와 객체를 통한 비교

0

77

1

빌드 후 libs 없음

1

129

1

윈도우 gradlew.bat 에러

0

167

1

@PostMapping("/members/new")가 동작하지 않습니다

0

89

1

java static class와 kotlin class

0

79

1

스프링 DB연결

0

126

1

소요 시간

0

87

2

ddl.sql에 빨간 밑줄

1

102

2

welcome page 에러

0

183

3

잘 모르겠습니다.

0

164

2

fail을 똑같이 쳤는데 오류가 발생해요

0

156

2

index.html Welcome page

0

124

1

프로젝트 gradle-groovy ?

0

369

1

테스트코드 메서드명 한글

0

202

2