본문 바로가기

Spring/Test

(5)
[Spring] [Error] 스프링 사용해서 테스트 할 때, 붙여줘야 하는 어노테이션 / 에러 내용 : Neither @ContextConfiguration nor @ContextHierarchy found for test class 스프링 테스트를 돌렸는데, 다음과 같은 에러가 발생했다. 스프링 빈 컨테이너가 생성될 때, 사용할 설정 파일을 지정해달라는 것이였다. 9월 24, 2022 10:52:47 오후 org.springframework.test.context.support.AbstractTestContextBootstrapper buildDefaultMergedContextConfiguration 정보: Neither @ContextConfiguration nor @ContextHierarchy found for test class [org.example.guestbookupgrade.dao.GuestbookDaoTest], using DelegatingSmartContextLoader 9월 24, 2022 10:52:47 오..
[Spring] [Test] [Error] 1. @ContextConfiguration에 들어갈 파라미터는? 2. @ComponentScan 범위의 중요성 / 에러내용 : org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'resourceHandlerMapping' defined.. @ContextConfiguration을 붙여주는 과정에서 에러가 생겼다. 9월 24, 2022 11:45:31 오후 org.springframework.context.support.AbstractApplicationContext refresh 경고: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'resourceHandlerMapping' defined in org.springframework.web.servlet.config.annotation.De..
[Spring] [Test] 단위테스트 작성하기 (1) - Mock객체 통합테스트 vs 단위 테스트 통합테스트 빈들 간에는 다양한 관계를 갖는 경우가 많다. 따라서 하나의 빈을 사용한다는 것은, 관계된 빈들도 함께 동작한다는 것을 의미한다. 따라서, "하나의 빈을 테스트할 때, 관련된 빈들이 모두 잘 동작하는지 테스트하는 것"을 통합테스트라고 한다. 단위테스트 하나의 빈을 테스트 할 때, "관계된 빈들과는 상관없이 해당 빈이 가지고 있는 기능이 잘 동작하는지만 확인하는 것"을 단위테스트라고 한다. 단위테스트를 위해, 관계된 빈을 Mock 객체로 대신하게 된다. 단위테스트 해보기 의존성 주입 mockito-core와 mockito-junit-jupiter를 추가해주자 mockito-core : mockito가 제공해주는 기본적인 라이브러리 mockito-junit-jupite..
[Spring] [Test] 스프링 테스트 어노테이션들(@ExtendWith, @SpringBootTest 등) 스프링 부트를 사용하지 않는 경우 JUnit4 @RunWith 기존 테스트 클래스 위에 @RunWith(SpringJUnit4ClassRunner.class)를 붙입니다. @RunWith 어노테이션은 JUnit이 제공하는 어노테이션입니다. JUnit은 확장기능을 가지는데, 스프링에서는 JUnit을 확장하도록 SpringJUnit4ClassRunner.class를 제공합니다. 해당 코드는 JUnit이 테스트 코드를 실행할 때 스프링 빈 컨테이너가 내부적으로 생성되도록 합니다. @ContextConfiguration @ContextConfiguration(classes = {ApplicationConfig.class})은 내부적으로 생성된 스프링 빈 컨테이너가 사용할 설정파일을 지정할 때 사용합니다. JUn..
[Spirng] [Test] JUnit 테스트 시작해보기 & 자주 사용하는 어노테이션 어떤 메서드를 만들고 나서, 해당 메서드가 잘 동작하는지 테스트 해보는 것은 매우 중요한 일이다. 자바에서 JUnit이라는 라이브러리를 제공하는데, 이에 대해 알아보자. 언어별로 테스트를 위한 프레임워크가 있는데, xUnit으로 이름이 붙는다. 자바의 경우, JUnit이 테스트를 위한 프레임워크이다. 사실, JUnit을 사용하려면 JUnit 라이브러리가 클래스패스(CLASSPATH)에 존재해야 한다. 하지만, 빌드 도구(gradle, maven)를 사용하면, JUnit을 디펜던시로 추가하여 편리하게 사용할 수 있다. 한편, 아주 편리한 스프링부트를 사용하면, 기본적으로 springboot-starter-test 디펜던시가 추가되기 때문에, 아예 신경쓰지 않아도 된다. 참고로, 스프링부트는 2.7.3버전 ..