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

jaho321님의 프로필 이미지
jaho321

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

상품 엔티티 개발(비즈니스 로직 추가)

테스트 코드

작성

·

319

0

이번 강의를 듣고 나름대로 간단한 테스트 코드를 만들어 봤는데요 이렇게 하는게 맞나 싶어서 여쭤봅니다

public class ItemTest {


@Test
public void 수량증가() {
//given
Item item = new Book();
item.setStockQuantity(10);

//when
item.addStock(10);
//Then
Assertions.assertThat(item.getStockQuantity()).isEqualTo(20);
}

@Test
public void 수량감소_합계0_이상() {
//given
Item item = new Book();
item.setStockQuantity(10);

//when
try {
item.removeStock(10);
} catch (NotEnoughStockException e) {
return;
}
//Then
Assertions.assertThat(item.getStockQuantity()).isEqualTo(0);

}

@Test
public void 수량감소_예외발생() {
//given
Item item = new Book();
item.setStockQuantity(10);

//when
try {
item.removeStock(11);
} catch (Exception e) {
e.printStackTrace();
return;
}

fail("예외가 발생해야 한다.");
}

}

이렇게 진행해도 괜찮을까요?

이상한 부분이 있다면 조언 부탁드리겠습니다

 

답변 1

1

안녕하세요. jaho321님, 공식 서포터즈 David입니다.

대체적으로 잘 작성하셨는데, 수량감소_예외발생의 경우 내부적으로 NotEnoughStockException 예외가 발생한다면 해당 예외를 감지하도록 테스트를 바꾸면 좋을 것 같습니다.

예외 발생에 대한 테스트는 아래 키워드를 참고하여 학습하시면 됩니다. Assertions.assertThatThrownBy

감사합니다.

jaho321님의 프로필 이미지
jaho321

작성한 질문수

질문하기