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

[PC-000] Repository 테스트 코드 내 Mocking -> Fake로 변경 #48

Merged
merged 4 commits into from
Feb 4, 2025

Conversation

tgyuuAn
Copy link
Member

@tgyuuAn tgyuuAn commented Feb 3, 2025

1. ⭐️ 변경된 내용

  • 책을 읽다가 적절하지 않은 곳에서 Mocking을 사용하고 있음을 파악하고, Mock -> Fake로 변경하였습니다.

2. 💡 알게된 부분

  • 어플리케이션 내부에서 테스트 할 때에는 Fake와 같은 스텁을 사용.
  • Mockking의 경우 어플리케이션 외부의 사이드 이펙트를 호출하는 것을 검증하는 데 사용.
  • 로컬 데이터베이스의 경우도 앱 내에서만 접근 가능하므로 스텁으로 검증 가능.
  • 룸 데이터베이스의 경우 인메모리 데이터베이스가 있으므로 Fake를 사용하지 않아도 검증 가능.
  • 해당 클래스 내부로 값이 들어오는 쿼리의 경우 스텁을 통해서 테스트 더블을 수행
  • 반면, 클래스 외부로 사이드 이펙트를 야기하는 명령의 경우 모킹을 통해서 테스트 더블을 수행
  • 스텁을 통해 사용자가 설정한 값을 그대로 검증에 사용하는 것은 적절치 않음.
  • 난수 생성기 같이 특정한 결과를 내는 과정에서 사용되는 것이나 동적으로 값을 검증할 때에 Fake를 사용
  • 모킹을 통해서 값을 검증하는 것은 옳지 않음. 모킹은 어플리케이션 내부에서 상태를 확인할 수 없는 특정 메서드의 호출과 같은 사이드 이펙트를 검증하는 데 사용

(위에서 말하는 스텁이란 Fake, Dummy, Stub 같은 류의 테스트 더블을 말합니다!)

3. 📌 이 부분은 꼭 봐주세요!

위와 같은 이유로 Fake를 도입하게 되었고,

그로 인한 트레이드 오프로 이제 DataSource를 만들때 인터페이스를 항상 만들고, 구현체를 만들어주어야 합니다...

더 안정적인 코드 vs 생산성의 트레이드 오프인데, 장기적으로 봤을 때에는 단단한 테스트 코드가 있는 현재의 경우가 더 좋다고 생각합니다...!

@tgyuuAn tgyuuAn added 리뷰 원해요🔥 피어의 리뷰를 기다리는 ing.. 🔥 리팩토링 🧰 동작의 변화는 없지만 가독성, 유지보수 측면에서의 코드 개선 🧰 새롭게 알게 됨 📖 프로젝트를 진행하며 새롭게 알게된 부분 📖 ㅌㄱ태규 ☀️ 훗날 크게될 ENFP 남성, tgyuuAn labels Feb 3, 2025
@tgyuuAn tgyuuAn requested a review from sksowk156 February 3, 2025 17:17
@tgyuuAn tgyuuAn self-assigned this Feb 3, 2025
@tgyuuAn tgyuuAn added the 테스트 📜 내가 작성한 코드는 내가 책임진다 📜 label Feb 3, 2025
@sksowk156
Copy link
Contributor

테스트 코드 작성할 때 참고할게요 좋은 내용 공유해주셔서 감사해요! 👍 👍

@sksowk156 sksowk156 added 머지 해도될듯염🌟 현재 코드를 기존 코드에 합쳐도 될 것 같다라고 판단..! 🌟 and removed 리뷰 원해요🔥 피어의 리뷰를 기다리는 ing.. 🔥 labels Feb 4, 2025
@tgyuuAn tgyuuAn merged commit 805a336 into develop Feb 4, 2025
1 check passed
@tgyuuAn tgyuuAn deleted the refactor/tgyuu/PC-000 branch February 4, 2025 11:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ㅌㄱ태규 ☀️ 훗날 크게될 ENFP 남성, tgyuuAn 리팩토링 🧰 동작의 변화는 없지만 가독성, 유지보수 측면에서의 코드 개선 🧰 머지 해도될듯염🌟 현재 코드를 기존 코드에 합쳐도 될 것 같다라고 판단..! 🌟 새롭게 알게 됨 📖 프로젝트를 진행하며 새롭게 알게된 부분 📖 테스트 📜 내가 작성한 코드는 내가 책임진다 📜
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants