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 |