연습 문제 1.2: TDD로 할인 금액 계산하기

    이 연습 문제에서는 엄격한 TDD 방식으로 현금 등록기 로직을 작성해보자.

    여러분은 CashRegister라는 클래스를 만들어야 한다. 이 클래스는 가격 정보와 오늘의 프로모션 정보를 생성자에서 받는다.

    가격 정보는 음식의 이름과 그 음식의 가격을 연관시킨 맵이다( [milk: 1.5, bread: 0.9]). 프로모션은 음식 이름에 대해 가능한 할인 전략을 연관시켜준다( [milk: "3x2", eggs: "8x6"]) 가능한 프로모션은 ‘MxN’ 유형뿐이다. 이 프로모션이 적용되면 M개를 사면 N개의 가격만 내면 된다.

    연습 문제의 목표는 상품 목록이 주어지면 전체 가격을 계산해주는 CashRegistercheckout 메서드를 구현하는 것이다. 즉, ["milk","milk","milk"]의 경우 전체 가격은 3.0이다.

    테스트에 고정된 값을 사용하지 말고 난수 생성기를 사용하라.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.