ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 테스트 작성하기
    Back end/SpringBoot 2023. 12. 12. 12:41
    스프링 부트에서의 테스트는 소프트웨어 애플리케이션의 품질을 보장하고 코드의 정확성을 검증하기 위한 활동입니다. 테스트는 주로 두 가지 유형으로 나눌 수 있습니다: 단위 테스트(Unit Test)와 통합 테스트(Integration Test).

    1. **단위 테스트(Unit Test):**
       - 개별적인 코드 블록 또는 모듈이 예상대로 작동하는지 확인하는 테스트입니다.
       - 주로 JUnit, TestNG 등의 테스트 프레임워크를 사용하여 작성됩니다.
       - 스프링 부트에서는 주로 서비스(Service), 리포지토리(Repository), 컨트롤러(Controller) 등의 각 컴포넌트에 대한 단위 테스트를 작성합니다.
       - 목 객체(Mock Object)를 사용하여 외부 의존성을 대체하여 테스트의 격리성을 유지합니다.

    2. **통합 테스트(Integration Test):**
       - 다수의 컴포넌트 간 상호 작용 및 통합된 시스템의 동작을 검증하는 테스트입니다.
       - 주로 스프링 부트의 내장된 테스트 지원 및 테스트 슬라이스(Test Slices)를 활용하여 작성됩니다.
       - 데이터베이스, 외부 서비스와의 상호 작용 등을 포함하여 전반적인 시스템의 동작을 확인합니다.

    스프링 부트에서는 테스트를 자동화하고 간편하게 수행할 수 있도록 다양한 도구와 기능을 제공합니다. 테스트는 소프트웨어의 변경사항이나 새로운 기능 추가 시 안정성을 유지하고 코드의 신뢰성을 확보하기 위한 중요한 단계 중 하나입니다.

     

    1. 테스트 하고 싶은 메소드에서 우클릭 generate -> test로 test.java 생성

     

    2. index() 메소드 테스트 예시

    =>  data.sql(실제 데이터)의 값과  예상 데이터의 값이 다르므로 비교시 failed가 뜸

     

    => 데이터값 일치 시켜주니 비교시 성공(일치)  결과값이 나온다.

     

    2. show() 메소드 테스트 예시

           => 해당 값이 일치하므로 테스트 성공

     

      => test성공. 이유는 아래 

    => 실제 service값에 orElse문으로 데이터가 없으면 null 이라 표현했기 때문!

     

    => create 값 테스트 결과 성공!

    하지만 id 값에 4L대신 3L을 적으면 기존 데이터값이 존재하므로 테스트 결과는 실패함.

      => 하지만 id 값에 4L대신 3L을 적으면 기존 데이터값이 존재하므로 테스트 결과는 실패함.

     

    => 일반적으로 create는 id값이 필요가 없으므로 예상값 null을 예측함. 

    => 테스트 결과는 성공

     

     

    나머지 메소드도 테스트 해보기

    'Back end > SpringBoot' 카테고리의 다른 글

    .xml 파일과 .properties 파일의 차이점  (1) 2024.05.03
    서비스 계층과 트랜잭션  (0) 2023.12.11
    HTTP와 RestController  (1) 2023.12.08
    폼 데이터 주고 받기  (0) 2023.11.29
    뷰 템플릿과 MVC 패턴  (2) 2023.11.29
Designed by Tistory.