작성
·
451
0
public void add(Beverage beverage, int count) {
if (count <= 0){
throw new IllegalArgumentException("음료는 1잔 이상 주문하실 수 있습니다.");
}
for (int i = 0; i < count; i ++) {
beverages.add(beverage);
}
}
// 위 코드랑 아래 테스트에 대해서 이해가 안되서요 !
@Test
void add() {
CafeKiosk cafeKiosk = new CafeKiosk();
Beverage latte = new Latte();
cafeKiosk.add(latte);
int expectedSize = 1;
int actuallySize = cafeKiosk.getBeverages().size();
String expectedName = "라떼";
String actuallyName = cafeKiosk.getBeverages().get(0).getName();
Assertions.assertThat(actuallySize).isEqualTo(expectedSize);
Assertions.assertThat(actuallyName).isEqualTo(expectedName);
}
@Test
void addSeveralBeverages() {
CafeKiosk cafeKiosk = new CafeKiosk();
Beverage latte = new Latte();
cafeKiosk.add(latte, 2);
Assertions.assertThat(cafeKiosk.getBeverages().get(0)).isEqualTo(latte);
Assertions.assertThat(cafeKiosk.getBeverages().get(1)).isEqualTo(latte);
}
저렇게 add()에 count를 넣어버리면 add()테스트에서 cafeKiosk.add(latte, 1)으로 수정하던지
해야 에러가 안나는 거 아닌가요? 강의에서는 그냥 진행하셔서 여쭤봅니다!
답변 1
1
안녕하세요, 최찬혁님! :)
현재까지 진행한 코드를 보시면 아시겠지만, CafeKiosk의 add() 메서드 시그니처는 다음과 같이 2개가 있는 상황입니다.
public void add(Beverage beverage);
public void add(Beverage beverage, int count);
첫 번째 add() 테스트에서는 위쪽 메서드를 테스트했고, 두 번째 addSeveralBeverages()는 아래쪽 메서드를 테스트한 것이죠. ㅎㅎ
감사합니다. :)