본문 바로가기

스프링

[spring] junit 3 학습테스트

1.     Com.springsource.junit : junit

2.     Commons-logging : Spring-context가 사용

3.     Mysql-connector : Mysql JDBC

4.     Spring-aop : 스프링 기능 자체의 aop

5.     Spring-bean : 스프링 빈을 활용하는 경우 필요. 스프링의 XML 설정파일과 자바 애노테이션을 파싱 하는데 필요한 클래스 포함

6.     Spring-context : 스프링 코어를 확장한 많은 클래스가 들어 있는데 모든 클래스는 EJB, JNDI(Java Naming Directory Interface), JMX용 클래스와 연동하는데 applicationcontext기능을 사용해야 하며 스프링 리모팅 클래스, 동적 스크립팅 언어(제이루비, 그루비등)와 연동하는 클래스, 빈 유효성검증(JSR-303) API, 스케줄링을 하는 클래스도 포함되어 있다.

7.     Spring-core : 모든 스프링 모듈에서 필요한 모듈. 다른 스프링 모듈에서 사용하는 공통 클래스가 포함됨.

8.     Spring-dao : EmpltyResultDataAccessException 등 사용을 위한 jar

9.     Spring-expression : 스프링 표현언어(SpEL) 지원 클래스 포함.

10.   Spring-jdbc : 스프링이 지원하는 jdbc.

11.   Spring-test.jar

-       @RunWith : Junit 프레임워크의 테스트 실행방법을 확장시 사용.

-       SpringJUnit4ClassRunner : 어플리케이션컨텍스트를 만들고 관리하는 확장 클래스

-       @ContextConfiguration(경로) : 자동으로 만들어줄 어플리케이션 컨텍스트 설정파일

 

l  학습테스트 : 자신이 만들지 않은 프레임워크나 다른 개발팀에서 만들어서 제공한 라이브러리 등에 대한 테스트

l  장점

-       테스트를 만드는 과정을 통해 API의 사용법을 익히고 내가 가진 기술에 대한 지식도 검증가능

자주 사용하는 기능에 대한 학습테스트를 만들어 놓았다면 새로운 버전의 프레임워크나 제품을 학습테스트에만 먼저 적용해 버그 등을 미리 확인가능하여, 업그레이드 일정을 늦추거나, 수정계획을 세울 수 있다.

 

13. is() : equals() 비교를 해서 같으면 성공

13. not() : 뒤에 나오는 결과를 부정하는(뒤집는) 매처. Is가 빠져도 되지만 가독성을 위해 넣음.

13. sameInstace() : 실제로 같은 오브젝트인지 비교. 테스트의 의도를 명확하게 하기 위해 사용

* Junit은 테스트 메소드를 수행할 때마다 새로운 오브젝트를 생성한다고 했다. 혹시 잘못 알고 있는 것은 아닌지 학습테스트를 작성해본 것. Static은 어플리케이션 실행시 로딩되는 객체로 테스트 메서드가 실행된 후 자기자신(JUnitTest와 비교해본 것)

* 위로도 괜찮지만 첫번째, 세번째 오브젝트가 같은지는 검증이 되지 않았다.

 

 

15. hasItem() : 컬렉션의 원소인지 검사

15. not() : 뒤에나오는 결과를 부정하는 매처 is를 붙여줘도 됨. 안붙여도 동일

 

 

ApplicationContext(스프링 컨테이너)는 테스트 개수에 관계없이 하나만 만들어지는지 확인

21. @RunWith(SpringJUnit4ClassRunner.class) : 테스트를 진행하는 중에 테스트가 사용할 어플리케이션 컨텍스트를 만들어줌.

22. @ContextConfiguration(경로) : 테스트 컨텍스트가 바라볼 설정파일위치 지정. 즉 이때, 스프링 컨테이너가 초기화됨.

24. @Autowired 에 의해 테스트 오브젝트가 만들어진 후 스프링 테스트 컨텍스트에 의해 자동으로 값이 주입됨.

 

'스프링' 카테고리의 다른 글

[jdbc] 전략패턴_내부클래스2  (0) 2020.10.17
[jdbc]예외처리_전략패턴1  (0) 2020.10.17
[spring] junit 2  (0) 2020.10.13
[spring] junit 1  (0) 2020.10.13
[Spring] SpringJDBC_Test  (0) 2020.10.12