TDD, 클린 코드 with Java 18기: 실시간 강의 정리(7)

yshjft·2024년 6월 27일

테스트를 위한 객체 생성

테스트를 위해 객체를 생성하다 보면 테스트 코드에서 코드 중복과 객체 생성을 위해 불필요한 정보 노출로 인하여 가독성 저하 되는 것을 경험할 수 있습니다. 이를 해결하기 위한 방법으로 Object Mother Pattern과 Builder Pattern 사용이 있습니다.

Object Mother Pattern

An object mother is a class with factory methods for different use cases in tests.

  • 다양한 테스트 케이스를 생성하는 메서드를 가진 클래스를 이용한 패턴입니다.
  • 이 방법을 통해 테스트 코드를 좀 더 가독성 좋게 만들 수 있습니다.
    • 새로운 객체 생성하는 코드를 숨길 수 있습니다.
  • 문제는 이 방법은 테스트 데이터가 많을 때 유연하지 못하다는 것입니다.
    • 필요한 테스트 데이터가 변경될 때 마다 팩토리 메서드가 변경되어야 합니다.
    • 다양한 이유로 메서드를 바꿔야 하므로 SRP를 위반하게 됩니다.

Builder Pattern

  • Object Mother Pattern의 문제점을 해결하면서 테스트 코드의 가독성을 개선 시킬 수 있는 방식은 Builder Pattern입니다.
  • Builder Pattern을 이용하여 테스트 코드에서 불필요한 정보를 숨기면서 유연한 코드를 만들 수 있습니다.
  • 직접 패턴을 구현할 수도 있지만 lombok을 이용하면 더욱 쉽게 패턴을 사용할 수 있습니다.

참고 자료

equals, isEqualTo

isEqualTo는 내부에서 equals 를 사용합니다. 그렇기 때문에 테스트 코드에서 상태값 비교를 문제 없이 진행할 수 있습니다.

  • equals

  • equals ⭕️

참고 자료

profile
꾸준히 나아가자 🐢

0개의 댓글