미해결
    
  
    
                Practical Testing: 실용적인 테스트 가이드
               
          
            테스트 given절 작성 시, "팩토리 메서드를 통한 생성 지양" 관련 문의
            
              
            
          
         
        
          학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요.  강의에서 테스트 given절에서 팩토리 메서드를 통한 객체 생성은 어떠한 의도가 들어갈 수 있으므로 지양하라고 하셨습니다. 관련하여 질문이 있습니다. 예를 들어 다음과 같은 팩토리 메서드가 있다고 하면,public class Coffee {    private String type;    private int size;    public Coffee(String type, int size) {        this.type = type;        this.size = size;    } }public class SeasonalCoffeeFactory {    public static Coffee createCoffee(String season) {        switch (season.toLowerCase()) {            case "summer":                return new Coffee("Iced Coffee", 50);            case "winter":                return new Coffee("Hot Coffee", 30);            case "spring":                return new Coffee("Latte", 40);            case "fall":                return new Coffee("Pumpkin Spice Latte", 45);            default:                throw new IllegalArgumentException("Unknown season: " + season);        }    }}여름 시즌 커피에 대한 테스트 코드는 다음과 같을 겁니다.    @Test    public void testCreateSummerCoffee() {        Coffee coffee = SeasonalCoffeeFactory.createCoffee("summer");        assertEquals("Iced Coffee", coffee.getType());        assertEquals(50, coffee.getSize());    }   이때 테스트 코드는 시즌에 맞는 커피 메뉴를 given절에 생성한 후 타입 일치여부만 판단하면 됩니다.하지만 이 부분을 팩토리 메서드로 작성하지 않게되면커피를 생성함에 있어if ("summer".equalsIgnoreCase(season)) {        coffee = new Coffee("Iced Coffee", 50); } else if... 와 같은 부분이 테스트 코드의 given절에 들어가야하지 않나 싶습니다. 물론 이런 부분에 대해서 if라는 논리구조가 들어갔으니 한번 더 테스트 코드 메서드가 분리되어야하는건가 싶기도 한데 확신이 잘 안 서서 질문 드리고 싶습니다.긴 글 읽어주셔서 감사합니다.