강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

highjune님의 프로필 이미지
highjune

작성한 질문수

Practical Testing: 실용적인 테스트 가이드

테스트 간 독립성을 보장하자

테스트 코드에서 필요한 생성자

작성

·

81

0

안녕하세요

좋은 강의 감사합니다. 잘 듣고 있습니다.

 

두 가지 궁금한 것이 있습니다.

  1. 테스트 코드에서만 필요한 생성자가 있다면, 그 생성자를 위해서 해당 객체나 엔티티에 생성자를 추가하는 과정이 옳은 것일까요?

     

아니면 애초에 그런 생성자가 필요한 상황 자체가 잘못된 것일까요? (프로덕션 코드를 테스트하는 것이 목적이니, 프로덕션 코드에서 이미 사용되고 있는 생성자를 쓰면 되지 않냐..)

 

 

  1. 모 회사에서는 @Builder 패턴은 무조건 restdocs 를 생성하는 경우에만(fixtures) 사용하라고 해서 프로덕션 코드에서는 무조건 생성자만 사용한 경우가 있었는데 @Builder 패턴의 사용 범위? 그런 것들은 어떻게 생각하시나요!? 강사님의 의견이 궁금합니다.

 

 

좋은 강의 감사합니다.

답변 1

0

박우빈님의 프로필 이미지
박우빈
지식공유자

안녕하세요, highjune 님!

 

1. 테스트 코드에서만 필요한 생성자가 있다면, 그 생성자를 위해서 해당 객체나 엔티티에 생성자를 추가하는 과정이 옳은 것일까요?

기본적으로 테스트 코드만을 위한 결정은 지양하되, 때에 따라 보수적으로 용이한 테스트를 위해 메서드를 추가하는 결정을 할 수도 있는데요.
size()나 getter() 같이 테스트에서 필요한 기능적인 메서드라면 모르겠으나 생성자는 이미 존재하는 프로덕션 생성자를 사용하면 되지 않을까, 하는 생각이긴 합니다.

 

2. 모 회사에서는 @Builder 패턴은 무조건 restdocs 를 생성하는 경우에만(fixtures) 사용하라고 해서 프로덕션 코드에서는 무조건 생성자만 사용한 경우가 있었는데 @Builder 패턴의 사용 범위? 그런 것들은 어떻게 생각하시나요!? 강사님의 의견이 궁금합니다.

만약 팀에서 그렇게 결정한 팀 컨벤션이 있고, 그에 맞는 합당한 이유가 있다면 지키면 되는데요. 저는 강의에서 보여드린 범위가 적당하다고 생각합니다. Builder 패턴으로 인스턴스를 생성할 때 가져갈 수 있는 효용이 크다고 생각하기 때문이에요.

도움이 되셨기를 바랍니다.
감사합니다. 🙂

highjune님의 프로필 이미지
highjune

작성한 질문수

질문하기