JUnit을 적용하려는 프로젝트에 오른쪽 마우스를 클릭하여 Properties를 클릭합니다.
Java Build Path로 들어가서 Add Library를 클릭합니다.
버전을 JUnit5로 맞혀주고 적용을 시켜주면 Finish, Apply를 클릭하면 적용이 끝이 납니다.
테스트 케이스를 만들 클래스에서 New - JUnit Test Case를 선택합니다.
그런 다음 test 폴더에 테스트 케이스를 생성하기 위해 해당 경로를 src/test/java로 바꾸어 줍니다.
테스트 케이스를 만들 메서드를 선택하고 Finish를 클릭하면 test 폴더에 해당 메서드들의 테스트 케이스 뼈대가 만들어진 것을 확인할 수 있습니다.
@Test가 붙은 메서드에 커서를 올려놓고 오른쪽 마우스를 클릭하여 Run As - JUnit Test를 클릭하여 실행시킬 수 있습니다.
스프링에서는 자동으로 클래스 간에 수많은 의존성 주입이 일어나기 때문에 다른 클래스에서 작성한 코드들을 사용할 수 있지만 JUnit은 테스트 케이스 부분만 실행하기 때문에 빈 자동 등록이나 의존성 주입이 일어나지 않습니다. 따라서 @Service, @Mapper가 붙은 클래스나 인터페이스도 쓰지 못하게 되는 것입니다. 이럴 때는 @RunWith와 @ContextConfiguration을 이용합니다.
예시
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={
"file:src/main/webapp/WEB-INF/spring/root-context.xml",
"file:src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml"})
public class HomeControllerTest {
@Resource
HomeService homeService;
@Test
public void testHomeInit() throws Exception {
List<HomeVO> homeList = homeService.selectHomeList();
System.out.println(homeList);
}
}
위와 같이 하면 JUnit 테스트를 실행할 때 @RunWith의 SpringJUnit4ClassRunner 클래스가 @ContextConfiguration에 적어 놓은 파일들을 같이 실행시킵니다. root-context.xml과 servlet-context.xml을 실행시켜 빈 등록과 의존 주입을 실행시키는 것입니다. 이렇게 되면 @Mapper가 등록되어 DB정보를 가져오는 selectHomeList 메서드를 테스트할 수 있습니다.
만약에 servlet-context.xml 에서 오류가 난다면 <mvc:annotation-driven>과 <context:component-scan> 태그를 root-context.xml에 옮겨 놓고 root-context.xml만 실행시켜 보시면 됩니다.
[Spring] 스프링 이클립스와 톰캣 연동하기 (0) | 2020.09.27 |
---|---|
[Spring] 스프링 @RequestBody, @ResponseBody 사용하기 (0) | 2020.09.27 |
[Spring] 스프링에서 파일 업로드하기 (0) | 2020.09.27 |
[Spring] 스프링 @RestController 사용하기 (0) | 2020.09.26 |
[Spring] 스프링 HttpServletRequest, @RequestParam, @ModelAttribute를 이용하여 파라미터 받기 (0) | 2020.09.26 |