테스트를 위한 객체 생성
테스트를 위해 객체를 생성하다 보면 테스트 코드에서 코드 중복과 객체 생성을 위해 불필요한 정보 노출로 인하여 가독성 저하 되는 것을 경험할 수 있습니다. 이를 해결하기 위한 방법으로 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
⭕️


참고 자료