Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] - BE 테스트 개선 스프링 컨텍스트 캐싱 최적화 #625

Open
wants to merge 8 commits into
base: develop/be
Choose a base branch
from

Conversation

Libienz
Copy link

@Libienz Libienz commented Dec 23, 2024

✅ 작업 내용

  • 컨트롤러 테스트 스프링 컨텍스트를 1회만 초기화 하도록 환경 통일
  • 서비스 테스트 스프링 컨텍스트 1회만 초기화 하도록 환경 통일

🙈 참고 사항

추상 클래스 계층 구조를 통해 서비스 통합 테스트, 컨트롤러 통합 테스트 환경을 통일하도록 했습니다.
이전에는 10개의 애플리케이션 컨텍스트가 전체 테스트에 소모되었지만 최적화 후 4개로 줄어들었습니다.
테스트 수행시간은 5번씩 측정을 진행해보았을 때 약 39초에서 32초로 18프로 정도 개선되었습니다. (제 로컬 기준)

추상클래스 이름 추천받습니다 인스턴스화가 불가능한 추상클래스라는 점을 명세에 강조하기 위해서 Abstract을 붙여보았어요 다른 좋은 이름 생각나시면 말씀 부탁드리겠습니다.

Copy link

Test Results

 30 files   30 suites   1m 8s ⏱️
296 tests 295 ✅ 1 💤 0 ❌
308 runs  307 ✅ 1 💤 0 ❌

Results for commit eef17d5.

Copy link

@eunjungL eunjungL left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다 리비~
테스트에 추상화 계층이 하나 더 추가돼서 공통 로직이 잘 모이게 됐네용
덕분에 테스트 작성이 더 쉬워질 것 같슴다! 👍

import org.springframework.boot.test.web.server.LocalServerPort;

@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public abstract class AbstractControllerIntegrationTest extends AbstractIntegrationTest {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

매번 불필요하게 반복되던 공통 로직이 잘 모였군요 👍
네이밍은 전 지금도 좋은 것 같습니다. 조금 긴 감이 있긴한데 오히려 명확한게 좋다고 생각해요~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature] - BE 테스트 개선 스프링 컨텍스트 캐싱 최적화
2 participants