본문 바로가기

test & refactoring8

[테스트 & 리팩토링 4편] github pull request template 및 CodeReview 정리 목차는 테스트 & 리팩토링 목차 에 있습니다. [테스트 & 리팩토링 4편] github pull request template 및 CodeReview 정리 Code Review & Pull Request 생각 Pull Request 은 reviewer 들이 이해하기 쉽도록 작성해야 한다고 생각합니다. 그렇기에 코드는 될 수 있으면 짧게 기능 단위로 요청하는 것이 좋으며, 서로 연관된 기능들을 한 번에 올려야하는 경우 reviewer 들에게 양해를 구하고 올리는 comment 를 달아주는 것이 좋다고 생각합니다. Code Review 를 하는 입장에서는 공격적으로 하지않고, 친절하게 suggest 하는 식으로 review 를 달며, 괜찮다면 code example 을 같이 제안해주면 좋을 것이라 생각합니다.. 2022. 6. 27.
[테스트 & 리팩토링 3편] package layer, package import 정리 목차는 테스트 & 리팩토링 목차 에 있습니다. [테스트 & 리팩토링 3편] package layer, package import 정리 package layer 상위 레이어는 하위 레이어를 참조하도록 하며, 하위레이어는 상위레이어를 참조하지 않도록 하는게 좋습니다. 소스 코드의 응집성과 추후 유지보수 확장성을 위해 이 규칙을 지키는게 좋습니다. 예를 들면 아래와 같습니다. controller 에 있는 HelloDto.Request 라는 것을 그대로 service 쪽에 넘기면 추후 HelloDto.Request 가 변경될 경우 HelloService 에 영향을 줄 수 있습니다. 그렇기에 아래 처럼 HelloService 의 parameter 와 맞는 아규먼트로 변환해서 넘겨주는 것이 좋습니다. 즉, 하위레이.. 2022. 6. 27.
[테스트 & 리팩토링 1편] 외부 연동 코드를 테스트 하는 방법 목차는 테스트 & 리팩토링 목차 에 있습니다. [테스트 & 리팩토링 1편] 외부 연동 코드를 테스트 하는 방법 아래와 같이 외부 연동 API 를 호출하는 서비스 및 메소드가 있다고 가정하겠습니다. MemberService.register() 를 테스트 코드로 만들어 테스트 하고 싶은데 외부 연동 메소드가 있습니다. 이럴 경우 Mock 을 사용해서 처리를 할 수도 있지만 Mock 을 사용하기 보단 interface 를 만들어 추상화해서 처리하는 방법에 대해서 정리했습니다. public class MemberService { public void register() { ... ... String result = ExternalApi.call(); ... ... } }interface 를 사용하여 작성한 so.. 2022. 3. 24.
[테스트 & 리팩토링 2편] Junit4, Junit5 정리 목차는 테스트 & 리팩토링 목차 에 있습니다. [테스트 & 리팩토링 2편] Junit4, Junit5 정리 JUnit4, JUnit5 개념 JUnit 은 테스트 컴포넌트입니다. JUnit4 의 업그레이드 버전이 JUnit5 입니다. JUnit4 가 단일 Jar 를 사용한 것에 반해 JUnit5 는 3가지 모듈로 구성돼있습니다. JUnit 플랫폼 + 주피터 + Vintage 여기서 알아둘만한 것은 Vintage 모듈을 통해 JUnit5 이전 버전 소스도 JUnit5 에서 동작이 가능합니다. JUnit4, JUnit5 혼용 시 문제점 junit4 의 경우 vintage 가 발견해서 실행을 시킵니다. junit5 의 경우 jupiter 가 발견해서 실행을 시킵니다. 이 2개 동작은 독립적으로 수행되며, 아래 .. 2021. 9. 28.