# @SpringBootTest
@SpringBootTest와 @WebMvcTest
차이점 @SpringBootTest는 통합 테스트를 진행하기 위해 쓰는 어노테이션으로 어플리케이션 테스트에 필요한 거의 모든 의존성을 제공함 @WebMvcTest는 단위 테스트를 진행하기 위해 쓰는 어노테이션 종류 중 하나로 MVC를 위한 테스트로 컨트롤러가 예상대로 동작하는지 테스트하는데 사용
[기술면접 스터디] @SpringBootTest/@WebMvcTest, 트랜잭션, TCP/UDP
@SpringBootTest은 프로젝트 내부에 있는 스프링 빈을 모두 등록하며, 실제 운영 환경에서 사용되는 클래스들을 통합해서 테스트를 진행한다.따라서 실제 환경과 유사하게 테스트가 가능하다는 장점이 있지만, 모든 빈을 등록하기 때문에 느리고 테스트 단위가 커서 디버
[Java/SpringBoot] @WebMvcTest를 사용한 슬라이스 테스트 시 발생한 404에러 (Not Found)
[Java/SpringBoot] @WebMvcTest를 사용한 슬라이스 테스트 시 발생한 404에러 (Not Found)

스프링 DB 접근 기술
DB는 commit 하기 전에는 반영이 안된다. 따라서 테스트 끝나고 rollback 해버리면 디비에는 반영이 안된다. test 끝나고 rollback 해주는 어노테이션이 @Transactional 이다. @AfterEach 로 지워주지 않아도 테스트 반복해서 실행이
Test
테스트 코드를 위한 어노테이션ApplicationContext에 모든 Bean들을 등록한다.테스트 코드를 위한 어노테이션JPA 관련하여 필요한 것들만 빈으로 등록한다.@Transactional을 명시하지 않아도 알아서 롤백된다. 정확히는 @DataJpaTest의 내부를
[ jUnit5 ] java.lang.AssertionError: Status expected:<200> but was:<406> 에러
2장 테스트에서 만난 에러들 > 아래 테스트를 진행하려는데 이런 에러들이 났다.. 1-1) 첫번째 에러 Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @Spri
[ Junit5 ] 단위 테스트 @WebMvcTest / @ExtendWith
이 책을 참조해 최신 개발 환경(2022년도 기준) 에서 진행하였습니다. Spring Boot 2.6.5 gradle 7.1.1 Java 11 2장 테스트 코드 작성하기 이번 장에서는 HelloController 를 만들어 테스트 코드를 작성하는 연습을 했다. jUn
스프링 부트 테스트
스프링 부트는 기본적인 테스트 스타터 spring-boot-starter-test 를 제공. 크게 2가지 모듈.spring-boot-test : Test 실행 관련 기능spring-boot-test-autoconfiguration : 관련 Test 자동 설정 기능이 장
스프링2
코드로 배우는 스프링 웹 프로젝트 책을 정리한 내용입니다. 1. AOP 코드를 작성하면서 염두에 두는 일들은 주로 다음과 같다. 파라미터가 올바르게 들어왔을까? 이 작업을 하는 사용자가 적절한 권한을 가진 사용자인가? 이 작업에서 발생할 수 있는 모든 예외는 어떻게
[@SpringBootTest VS @WebMvcTest]
@SpringBootTest@SpringBootTest의 경우 일반적인 테스트로 slicing을 전혀 사용하지 않기 때문에 전체 응용 프로그램 컨텍스트를 시작한다.특징전체 응용 프로그램을 로드하여 모든 bean을 주입하기 때문에 속도가 느리다. 통합 테스트를 할 때 많
Spring Boot 테스트 속도 개선기
왜 내가 작성한 spring boot test의 속도가 느린 것일까? (왜 테스트 케이스마다 서버를 새로 띄울까?)
_-_RestDocs.png)
[SpringBootTest] Spring RestDocs 작성하기
들어가면서 👋테스트 코드를 작성하면 필수적(?)으로 Spring RestDocs를 스쳐지나보게 된다. Spring RestDocs를 사용하게 되면 우선 테스트는 거쳐진 코드로 생각할 수 있어 안정적인(?) 코드라 생각할 수 있다. Swagger와 다르게 직접 실행을
_-_%40Testcontainer.png)
[SpringBootTest] @Testcontainer 로 테스트 환경 구축하기
들어가면서 👋SpringBootTest 코드를 작성하면서 매번 다른 개발자들이 각 PC에서 Local Database를 세팅해야 하는 일은 매우 번거롭게 느껴졌다. 그렇다고 개발계 서버용 DB를 사용하는 것도 순수 테스트를 위해 사용하기엔 기존 데이터가 엉망(?)이
_-_Test_Configuration.png)
[SpringBootTest] @TestConfiguration 테스트 환경 구축하기
들어가면서 👋실제 환경이 아닌 테스트 환경에서 코드를 작성하다보면 테스트를 위한 Configuration을 재정의할 필요가 생기는 것을 발견할 수 있다. 그 이유는 테스트 환경은 말 그대로 실제 외부 채널과 연결이 되면 안되거나 내부적인 로직에서 Interceptor
_-__Mockito.png)
[SpringBootTest] Mockito @Mock @MockBean @Spy @SpyBean
@Mock @Spy @InjectMocksMockito에서 제공하는 서비스 `빈껍데기`로 통한다.빈껍데기이기 때문에 given, when, then BDD 시나리오에 따라 테스트를 진행하는 방법으로 진행할 수 있다.@MockBeanspring-boot-test 패키지는

@SpringBootTest
이번 장에서는 프로그램의 무결성을 보장하고 코드 품질을 향상시키는데 중요한 테스트 코드 관련 어노테이션을 알아 보고자 한다. 스프링 부트에서는 기본적인 테스트 스타터를 제공한다 각종 테스트를 위한 어노테이션 기반 기능을 제공하여 특정 주제에 맞게 테스트를 구현하고 관

[JUnit & Mockito] Integration Test using @SpringBootTest
@SpringBootTest해당 클래스의 패키지를 탐색해서 @SpringBootApplication 어노테이션이 있는 클래스를 탐색하고 실행시킵니다. 만약 없다면 한 패키지씩 줄여가면서 탐색을 이어나갑니다. 해당 애플리케이션을 실행시켜 주므로 모든 컴포넌트(Bean)들