Skip to content

Controller, MariaDBRepository, Websocket용 Base class 추가#82

Merged
Junh-b merged 13 commits intodevfrom
feat/test-fixture
May 26, 2025
Merged

Controller, MariaDBRepository, Websocket용 Base class 추가#82
Junh-b merged 13 commits intodevfrom
feat/test-fixture

Conversation

@Junh-b
Copy link
Copy Markdown
Contributor

@Junh-b Junh-b commented May 26, 2025

✨ 작업내용


🐞 이슈사항

이슈 번호 제목 상태
#78 Base Test 구현 ✅ 해결

⚠️ 특별사항

  • AcceptanceTest에 대한 공통 로직은 전반적으로 리팩토링이 된 이후에 가늠이 가능해질 것 같아 생략했습니다.

Junh-b added 11 commits May 26, 2025 00:12
init.sql은 테이블 정의, data.sql은 데이터 삽입, delete.sql은 테이블 초기화를 담당합니다.
testcontainers를 사용하여, MariaDB 기반의 TestExtension을 정의했습니다.
MariaDBAdapterTest는 이 Extension을 포함하여, MariaDB 통합테스트에 필요한 공통 코드들을 포함합니다.
MariaDBAdapterTest 클래스를 활용하여 Repository에 대한 샘플 테스트코드를 추가했습니다.
실제로는 save, find, custom query에 대해 테스트가 이루어져야 합니다.
누락되었던 testcontainers library들을 추가했습니다
userId와 name을 Annotation에 전달하면 해당 userId와 name을 가진 Authentication 객체가 자동으로 mockmvc 요청에 포함됩니다.
performGet, performPost 메서드는 mockmvc 요청시  기본적인 설정만 포함한 메서드라 선택적으로 사용하시면 됩니다.

convertAs 메서드를 사용하면, mockMVC의 응답으로 반환된 jsonString을 특정 ResponseDto 객체로 변환 가능합니다. 이 때, 변환 대상인 ResponseDto 객체의 class를 인자로 전달해주셔야 합니다.
ControllerTest base 테스트를 사용하는 AssetController의 샘플 테스트코드를 추가했습니다.
WebMvcTest Annotation으로 테스트 대상 Controller 클래스를 명시해주셔야 하며, 서비스는 MockitoBean Annotation으로 mocking하여 기대하는 응답을 반환토록 해야 합니다.
WithCustomMockUser 사용을 위해 필요한 dependency입니다.
stomp client 테스트에 사용할 수 있는 Base Test를 추가했습니다.
it profile이더라도 h2-mem일 경우에 동작하도록 변경합니다.
구독을 했을 때, 정상적으로 stomp 메시지를 수신할 수 있는지 테스트합니다.
@Junh-b Junh-b self-assigned this May 26, 2025
@Junh-b Junh-b marked this pull request as ready for review May 26, 2025 07:55
시간 불일치 이슈가 발생할 수 있어 해당 Config를 포함시켰습니다.
Copy link
Copy Markdown
Contributor

@caniro caniro left a comment

Choose a reason for hiding this comment

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

와 역시 코드 작성하시는 속도가 ㄷㄷ... 고생하셨습니다
도커 컨테이너를 라이브러리 사용해서 띄우는 거 생각 못 했었는데 좋네요 ㅋㅋ
점점 프로파일이 많아지는군요...

@Junh-b Junh-b merged commit aa63fa5 into dev May 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants