Spring Test

테스트가 독립적이라고 해서 매번 스프링 컨텍스트, 즉 컨테이너를 새로 만드는 것은 매우 비효율적.
스프링 테스트는 사용하는 컨텍스트를 캐싱해ㅔ 여러 테스트에서 하나의 컨텍스트를 공유할 수 있는 방법을 제공한다.

즉 동일한 컨텍스트 구성을 갖는 테스트끼리는 같은 컨텍스트를 공유하는것
공유는 메서드 사이에서만 가능한 게 아니라 여러 클래스 사이에서도 가능하다.

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${org.springframework-version}</version>
    <scope>test</scope>
</dependency>

1. @RunWith(SpringJunit4ClassRunner.class)

  • ApplicationContext를 만들고 관리하는 작업을 할 수 있도록 jUnit의 기능을 확장
  • jUnit에서는 테스트 메소드별로 객체를 따로 생성해 관리하는 반면 Spring-Test 라이브러리로 확장된 jUnit에서는 컨테이너 기술을 써서 싱글톤으로 관리되는 객체를 사용해 모든 테스트에 사용

2. @ContextConfiguration(locations = "classpath:xml파일위치")

  • 스프링 빈(Bean) 설정 파일의 위치를 지정
  • @RunWith 어노테이션은 컨테이너를 생성하겠다는 의미인데, 어떤 파일을 참조할지 모르는 상태이기 때문에 이 어노테이션을 함께 써줘야함
  • 파일 위치의 루트는 src/test/resources이며 운영 설정 파일을 이곳에 복사해놓고 사용해도 됨

'Main > Unit Test' 카테고리의 다른 글

[단위테스트] Junit  (0) 2021.02.25
[단위테스트] Hamcrest  (0) 2021.02.25
단위테스트란? (정의, 목적, 장점, 작성법)  (0) 2021.02.24

+ Recent posts