더북(TheBook)

예제 7-1에서는 @RunWith 애너테이션을 사용하고 있다. 이 애너테이션은 단순히 JUnit 애너테이션으로, JUnit이 유닛 테스트를 수행하는 데 JUnit 엔진 대신 SpringJUnit4ClassRunner 클래스를 사용하도록 한다. 이렇게 하면 스프링 컨테이너 접근 같은 스프링 통합 테스팅의 모든 기능을 사용할 수 있다. 또한, 스프링 테스팅 설비의 일부인 @ContextConfiguration 애너테이션을 사용하고 있다. 이 애너테이션은 XML 설정의 위치를 전달해서 스프링 컨테이너를 로드하고, 컨텍스트 그리고 더 나아가 잘 알려진 @Autowired 애너테이션을 사용해 접근할 수 있는 빈들을 준비하는 데 도움을 준다.

gradle 도구를 사용해 이 테스트(예제 7-1 참고)를 수행하면

 

$ gradle :ch07:test

 

다음과 같은 출력을 얻는다.

 

2014-07-30 17:20:58,910 DEBUG [Test worker] SearchEngineService created: com.apress.isf.spring.service.SearchEngineService@4c673b64

2014-07-30 17:20:59,008 DEBUG [Test worker] Document DAO set: com.apress.isf.spring.data.DocumentRepository@370a8418

2014-07-30 17:20:59,040 DEBUG [Test worker] Using Spring Test fixtures:

2014-07-30 17:20:59,041 DEBUG [Test worker] Start <findByType> Params: Type Definition:

Name: WEB

Description: Web Link

Extension: .url

2014-07-30 17:20:59,041 DEBUG [Test worker] Start <listAll> Params:

2014-07-30 17:20:59,041 DEBUG [Test worker] Start <getAll> Params:

2014-07-30 17:20:59,041 DEBUG [Test worker] End <getAll> Result:[Lcom.apress.isf.java.model.Document;@7f7f7937

2014-07-30 17:20:59,041 DEBUG [Test worker] End <listAll> Result: [com.apress.isf.java.model.Document@48e619dc, com.apress.isf.java.model.Document@492f87b6, com.apress.isf.java.model.Document@14224838, com.apress.isf.java.model.Document@10102d4a]

2014-07-30 17:20:59,042 DEBUG [Test worker] End <findByType> Result: [com.apress.isf.java.model.Document@10102d4a]

2014-07-30 17:20:59,042 DEBUG [Test worker] Start <listAll> Params:

2014-07-30 17:20:59,042 DEBUG [Test worker] Start <getAll> Params:

2014-07-30 17:20:59,042 DEBUG [Test worker] End <getAll> Result:[Lcom.apress.isf.java.model.Document;@6840fe6d

2014-07-30 17:20:59,042 DEBUG [Test worker] End <listAll> Result: [com.apress.isf.java.model.Document@48e619dc, com.apress.isf.java.model.Document@492f87b6, com.apress.isf.java.model.Document@14224838, com.apress.isf.java.model.Document@10102d4a]

 

이 애너테이션 기능은 코드를 단순하게 하고 행 수를 줄여주어 코드를 읽고 이해하기 쉽게 해준다. 또한, 실제 테스트에 집중할 수 있게 해준다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.