Sprint-Test에서 테스트를 지원하는 어노테이션
@RunWith(SpringJUnit4ClassRunner.class)
- Junit 프레임워크의 테스트 실행방법을 확장 할 때 사용하는 어노테이션이다.
- SpringJUnit4ClassRunner 라는 클래스를 지정해주면 jUnit이 테스트를 진행하는 중에 ApplicationContext를 만들고 관리하는 작업을 진행한다.
- @RunWith는 각각의 테스트 별로 객체가 생성되더라도 싱글톤(Singleton)의 ApplicationContext를 보장한다.
@ContextConfiguration
- 스프링 빈(Bean) 설정 파일의 위치를 지정할 때 사용되는 어노테이션이다.
@Autowired
- 스프링 DI에서 사용되는 특별한 어노테이션이다.
- 해당 변수에 자동으로 빈을 매핑 해준다.
- 스프링 빈 설정 파일을 읽기 위해 굳이 GenericXmlApplicationContext를 사용할 필요가 없다.
예시코드
1. Sprint-Test
import static org.junit.Assert.assertEquals; } |
2. JUnit
import org.springframework.context.ApplicationContext; import org.springframework.context.support.GenericXmlApplicationContext; import myspring.di.xml.Hello; import myspring.di.xml.Printer; public class HelloBeanTest { public static void main(String[] args) { // ioc 컨테이너 생성 ApplicationContext context = new GenericXmlApplicationContext("/config/beans.xml"); // src부터가 절대 경로로 기본 으로 설정 되어있다. // 2.Hello Bean 가져오기 Hello hello = (Hello) context.getBean("hello"); Hello hello = (Hello) context.getBean("hello"); System.out.println(hello.sayHello()); hello.print(); // 3.SpringPrinter Bean 가져오기 Printer printer = (Printer) Printer printer = (Printer) context.getBean("printer"); System.out.println(printer.toString()); Hello hello2 = context.getBean("hello", Hello.class); // Behaves the same as // getBean(String), but provides a measure of type safety by throwing a // BeanNotOfRequiredTypeException if the bean is not of the required type. // hello2.print(); // true가 나온다는 것은 sigleton 패턴이다. System.out.println(hello == hello2); } } |
Junit @RunWith @ContextConfiguration와 @SpringApplicationConfiguration
'2019백업' 카테고리의 다른 글
7) 전자정부 프레임워크 값 주고받는 3가지 방법 (0) | 2019.06.25 |
---|---|
6) Bean 의존관계 설정 (0) | 2019.06.25 |
4-2) DI 애플리케이션 작성 - JUnit (0) | 2019.06.25 |
namespace는 무엇이고 XML은 무엇일까? (0) | 2019.06.20 |
4-1) DI 예시 코드 (0) | 2019.06.20 |