테스트2 리팩터링(2) - 문제 해결하기 지난 글에서 리팩터링의 필요성을 직접 느끼고 문제 상황을 정의한 경험을 공유했습니다. 이번 글에서는 문제를 어떻게 해결해나갔는지에 대해 작성해보겠습니다. 1. 각 도메인 코드와 알람 코드 분리 리팩터링하기 이전의 코드도 의존관계는 단방향으로 잘 흐르고 있었습니다. 각 도메인에서 알람을 참조하는 형태로 이뤄졌고, 알람은 외부 도메인에 대한 정보가 전혀 없었습니다. 덕분에 의존성에 대한 문제는 전혀 존재하지 않았습니다. 다만 각 도메인에서 알람을 전송하기 위한 코드들이 많이 있었고 이를 도메인에서 떼어내기 위해 여러 고민을 했고 최종적으로 도메인 이벤트라는 방법을 선택하게 됐습니다. 도메인 이벤트를 사용하면 다음과 같은 장점이 있었습니다. 절차지향의 코드를 객체지향 코드로 전환할 수 있다. 외부 패키지와의 .. 2022. 9. 24. [Java] 대역으로 Junit 테스트 코드 작성하기 지난 포스팅에서 Random 값을 테스트 할 수 있는 StubNumberGenerator 를 만들어 간단하게 테스트를 진행해보았다. 이번 포스팅에서는 레벨 1 미션의 랜덤값에 의한 테스트를 자유자재로 할 수 있는 스텁 객체를 만들고자 한다. Stub 이란? Stub이란 구현을 단순한 것으로 대체한 것이다. 테스트에 맞게 단순히 원하는 동작을 수행해준다. 대역 테스트에는 실제 동작을 구현하는 Fake, 호출된 내용을 기록하는 Spy, 기대값을 반환 받는 Mock이 있다. 이번 테스팅은 단순히 원하는 동작을 수행해준다는 의미에서 Stub이라고 접두사를 붙였다. 처음 Stub 객체를 작성할 때는 내가 작성한 테스트가 동작하기 위한 객체를 만들었다. public class StubNumberGenerator i.. 2022. 2. 15. 이전 1 다음