본문 바로가기
dev/Spring

[JUnit] JUnit 사용하여 단위테스트 하기

by dev_Step 2022. 3. 2.

JUnit을 사용하기 위해서는 dependecy를 추가해줘야 한다.

dependecy를 추가해주는데 spring-test를 추가해주는데 이때 version을 선택해줘야 하는데 

이때 spring의 버전과 동일하게 맞춰줘야 한다.

 

이렇게 dependency를 추가하면 @Runwith 어노테이션과 @ContextConfiguration을 사용할 수 있다.

 

@RunWith(SpringJUnit4ClassRunner.class)

 

 @RunWith는 JUnit 프레임워크의 테스트 실행방법을 확장할 때 사용하는 어노테이션이다.

  SpringJUnit4ClassRunner라는 클래스를 지정해주면 JUnit이 테스트를 진행하는 중에 ApplicationContext를 만들고 관리하는 작업을 진행해준다.

  @RunWith 어노테이션은 각각의 테스트 별로 객체가 새성되더라도 싱글톤(Singletone)의 ApplicationContext를 보장한다.

 

@ContextConfiguration

- 스프링 빈(Bean) 설정 파일의 위치를 지정할 때 사용되는 어노테이션이다.

 

 

위의 코드를 설명하자면

@RunWith() 어노테이션을 통해서 container 를 생성하였고,, @ContextConfiguration을통해 container에서 사용할 bean들을 생성, 어느것을 사용할지 나타내준다.

이때 @ContextConfiguration에서 설정파일을 정할때 xml 파일 밖에 설정이 안되는것같았다 

(~~~.properties파일을 경로로 지정해줬더니 계속 해당 파일을 읽어오지 못했다)

 

또한 해당 위치의 root-context에서 어노테이션을 통해서 파일을 지정해 줄때 해당 파일이 bean으로 등록되어 있지 않다면 해당 파일을 사용할 수 없었다.

 

<context: property placeholder locations="classpath:config/databasefile.properties">

를 하여 <bean id="datasource"> DB파일을 $ {...} 하여 외부파일을 통해 설정하게 했더니 해당 ~~.properties파일을 읽어오지 못했다 ... 

그리하여 해당 외부파일을 bean으로 설정하여 등록해주니 정상적으로 DB연결이 되었다.

<bean class="~~~~~PropertyPlaceholderConfigurarer">

   <property name="locations">

      <value>classpath:config/database.properties</value>

   </>

</>

 

처음에는 계속 안되서 해결방법을 찾지 못하다가 bean등록 하여 읽혀보자 라는 생각으로 외부설정파일을 bean등록하여 사용하니 정상적으로 되는것을 확인한 것.

'dev > Spring' 카테고리의 다른 글

[Spring] HttpServeltRequest, HttpServeltResponse, Session  (0) 2022.03.10
[Spring] Bean 생성  (0) 2022.03.04
[Spring] Controller Exception처리  (0) 2022.01.20
[Spring] file-Upload  (0) 2022.01.20
[Spring] Controller Return Type  (0) 2022.01.20