본문 바로가기

테스트12

스프링부트 각 계층 테스트 하는 방법 Domain 계층 : 클래스를 테스트 하는 것과 동일하게 별도의 추가적인 설정 없이 별도의 클래스를 만들고, 안에 테스트할 메서드를 적으면 됨. ※ Service, Repository, Controller 계층은 빈은 스프링에서 관리하기 때문에, 테스트에 @SpringBootTest를 붙여야 함 Service, Repository 계층 : 스프링 빈을 사용하는 테스트 방법 사용 (@SpringBootTest) 데이터 위주의 검증이 주로 테스트 됨 Controller 계층 : 스프링 빈을 사용하는 테스트 방법 사용 (@SpringBootTest) 응답받은 JSON을 비롯한 HTTP 위주의 검증 2023. 1. 3.
Junit5에서 사용되는 주요 어노테이션 @Test : 테스트 메서드를 지정함. 테스트 메서드를 실행하는 과정에서 오류가 없으면 성공 @BeforeEach : 각 테스트 메서드가 수행되기 전에 실행되는 메서드를 지정 @AfterEach : 각 테스트가 수행된 후에 실행되는 메서드를 지정 @BeforeAll : 모든 테스트를 수행하기 전에 최초 1회 수행되는 메서드를 지정 @AfterAll : 모든 테스트를 수행한 후 최후 1회 수행되는 메서드 지정 package com.group.libraryapp import org.junit.jupiter.api.AfterAll import org.junit.jupiter.api.AfterEach import org.junit.jupiter.api.BeforeAll import org.junit.jupite.. 2023. 1. 3.
테스트코드 수동으로 직접 만들었을 때 단점 (테스트 프레임워크 안 쓸 때) 1. 테스트 클래스와 메서드가 생길 때 마다 메인 메서드에 직접 코드를 추가해야 하고, 그럴수록 메인 메서드가 계속 커진다. 테스트 메서드를 개별적으로 실행하기도 어렵다. 2. 테스트가 실패한 경우 어떤 값이 나오길 기대하였고, 어떤 잘못된 값이 들어와 실패했는지 알 수 없는 단점이 존재함. 그리고 예외를 던지거나, try catch를 사용해야 하는 등 직접 구현해야 할 부분이 많아 불편하다. 3. 테스트 메서드별로 공통적으로 실행되어야 하는 기능이 있다면, 프레임워크 없이 수동으로 작성하면 메서드마다 중복이 생김. (아래 예시 코드에서는 Calculator 생성하는 var calculator = Calculator(5) 부분 중복 발생) 아래는 코틀린으로 작성한 수동 예시 코드 ( 프레임워크 없이 메인.. 2023. 1. 3.
테스트 코드 구성 항목 테스트 코드는 크게 3가지 부분으로 나누어져 있음. // given - when - then 패턴 1. 테스트 대상을 만들어 준비하는 과정 // given 2. 실제 우리가 테스트 하고 싶은 기능을 호출하는 과정 // when 3. 호출 이후 의도한대로 결과가 나왔는지 확인하는 과정 // then 2023. 1. 3.