🤔 < Test Code >
Test Code는 개발자가 작성한 소프트웨어의 성능,기능을 검증하는 데 있어 핵심적인 역할을 수행한다.
🚀 < Test Code의 장점 >
①. 품질 보장 : Test Code를 통해서 정상 작동하는지 Test함으로 전반적인 품질이 보장된다.
②. 버그 감지 : Test Code는 새로운 기능을 추가하거나 기존 코드를 수정할 때 발생 할 수 있는 문제를 미리 감지하는데 도움이 된다.
③. Refactoring : 안정적인 Test Code가 있으면 Refactoring이 쉬워진다. 코드의 구조를 변경하더라도 테스트 코드를 통해
기능 유지가 되는지 확인할 수 있기 때문이다.
④.문서화 : 해당 기능이 어떻게 동작해야 하는지를 보여주는 좋은 예제가 된다.
🎁 < Where ? >
Test Code는 test Directory에서 작업한다.
테스트 코드를 작성하는 데에는 다양한 방법이 있으며, 그 중 하나가 바로 'Given-When-Then' 패턴이다.
이 패턴은 테스트를 세 가지 단계로 나눠 보는 방법이며, 이는 다음과 같다.
1 ) Given - 이 단계에서는 테스트의 전제 조건을 설정한다. 즉, 테스트를 진행하기 위한 준비 단계로써, Data를 초기화하거나 특정 상태를 설정하는 등의 작업을 수행한다.
2 ) When - 이 단계에서는 실제로 테스트하고자 하는 행동,메서드를 실행한다. 즉, 검증하고자 하는 부분이 이 단계에서 수행된다.
3 ) Then - 마지막으로, 이 단계에서는 테스트 결과가 예상대로 동작하는지를 검증한다. 보통 'assert'라는 메서드를 이용하여, 결과값이 예상한 값과 일치하는지 확인하는 방식으로 진행된다.
< given-when-then 테스트 코드 예시 >
@DisplayName("새로운 메뉴를 저장한다.")
@Test
public void saveMenuTest() {
//given : 메뉴를 저장하기 위한 준비 과정
final String name = "아메리카노";
final int price = 2000;
final Menu americano = new Menu(name, price);
//when : 실제로 메뉴를 저장
final long savedID = menuService.save(americano);
// then : 메뉴가 잘 추가되었는지 검증
final Menu saveMenu = menuService.findById(sevedId).get();
assertThat(savedMenu.getName()).isEqualTo(name);
assertThat(savedMenu.getPrice()).isEqualTo(price);
}
위 코드는 세 부분으로 나누어져 있다. 메뉴를 저장하기 위해 준비하는 과정인 given절, 실제로 메뉴를 저장하는 when절, 메뉴가 잘 추가되었는지 검증하는 then절로 나누어져 있다.
출처 : 스프링 부트 3 백엔드 개발자 되기 - 자바 편
http://www.yes24.com/Product/Goods/118625612
'스프링부트' 카테고리의 다른 글
제대로 테스트 코드 작성해보기!(Create Test,MockMvc,@AutoConfigureMockMvc) 및 HTTP 주요 응답 코드 (0) | 2023.05.27 |
---|---|
JUnit (0) | 2023.05.23 |
Spring Boot Request~Response Process (0) | 2023.05.18 |
Spring Boot3 구조 (0) | 2023.05.18 |
@SpringBootConfiguration/@ComponentScan/@EnableAutoConfiguration (0) | 2023.05.18 |