본문 바로가기
개인 공부/BackEnd Study

[ Spring Boot ] 맨날 까먹는 나를 위한 복습 - 13 -

by 킴도비 2024. 3. 24.

13.1 테스트란?

  • 프로그램의 품질을 검증하는 것.
  • 의도대로 프로그램이 잘 동작하는지 확인하는 과정

 

  • 테스트 도구를 활용해 코드를 검증한다는 것은 테스트 코드를 작성해 실행한다는 말

 

  • 테스트 코드의 3 단계
  1. 예상 데이터 작성하기
  2. 실제 데이터 획득하기
  3. 예상 데이터와 실제 데이터 비교해 검증하기

 

  • 작성한 코드가 테스트를 통과하면 지속적인 리팩터링으로 코드를 개선함
  • 테스트를 통과하지 못하면 잘못된 부분을 찾아 고치는 디버깅을 해야 함

 

  • 테스트 케이스란? 테스트 코드는 다양한 경우를 대비해 작성하는 것

 

 

  • 테스트 주도 개발이란?
    • 일단 테스트 코드를 만든 후 이를 통과하는 최소한의 코드부터 시작해 점진적으로 코드를 개선 및 확장해 나가는 개발 방식

 

13.2 테스트 코드 작성하기

  • @Test는 해당 메서드가 테스트를 위한 코드라고 선언하는 것
  • @SpringBootTest는 해당 클래스를 스프링부트와 연동해 통합 테스트를 수행하겠다고 선언하는 것

 

  • Arrays.asList() 메서드란?
    • ArrayList를 합치고 List 타입에 저장할 수 있음.
    • 입력된 배열 또는 2개 이상의 동일한 타입 데이터를 정적 리스트로 만들어 반환
    • 정적 리스트는 고정 크기이므로 add()나 remove() 메서드를 사용할 수 없음
    • 정적 리스트에 add()나 remove() 메서드를 사용하려면 정적 리스트를 일반 리스트로 새로 만들어야 함.

 

  • assertEquals(x, y) 메서드를 이용하면 실제 데이터와 예상 데이터가 일치하는지 비교 할 수 있음.
  • JUnit에서 제공하며, 예상 데이터(x)와 실제 데이터(y)를 비교해 일치하면 테스트를 통과시킴

 

  • 데이터를 조회하는 테스트를 제외하고 데이터를 생성, 수정, 삭제하는 테스트를 할 때는 반드시 해당 테스트를 트랜잭션으로 묶어 테스트가 종료한 후 원래대로 돌아갈 수 있게 롤백 처리를 해줘야 함.