본문 바로가기

TIL

Day37(랜덤은 테스트코드 하기 힘들다.)

 public void leftLabelSetting() {
        Random random = new Random();

        orders = random.nextInt(5) + 1;

        leftMainPanel.add(new JLabel(orders + "개의 주문이 들어왔습니다. 순서대로 음식을 준비해주세요."));

        ArrayList<Food> foodArrayList = new ArrayList<>(foodList);

        for (int i = 0; i < orders; i += 1) {
            int index = random.nextInt(orders - i);

            foodOrderList.add(foodArrayList.get(index));

            foodOrderPriceSum += foodOrderList.get(i).getFoodPrice();

            leftMainPanel.add(new JLabel((i + 1) + ". " + foodArrayList.get(index).getFoodName()));

            foodArrayList.remove(index);
        }
    }

랜덤에 관해서 리팩토링 한 후 테스트코드를 사용해보려고 노력했으나 끝까지 안됐다. 그 이유는 랜덤은 애초에 테스트코드 작성하기가 매우 까다롭다는 것이다.

 

또한 딜리버리 타이쿤의 프로그래밍 중 주문 부분에 대해서 리팩토링 하려는데 계속 널값이 발생했다. 그 이유는 주문클래스에 패널과 레이블을  넣어버렸다. 패널과 레이블은 주문 부분에서 아무 상관이 없는데 말이다. 리팩토링을 할 때는 내가 어떠한 기능을 사용할지 생각하고 무엇을 집어넣어야할지 생각하고 실행하자.