내용으로 건너뛰기
권남
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
추적:
•
resthighlevelclient
•
documentation
•
stopwatch
•
scheduler
java:unittest:reflectioninjector
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== ReflectionInjector ====== Java에서 단위테스트 작성시 Setter 메소드가 없는 private 필드에 값을 삽입하는 것이 어렵다. 이 경우 보통 Spring의 [[http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/test/util/ReflectionTestUtils.html|ReflectionTestUtils]]를 사용하는데, 사용법이 복잡하여 이를 아래와 같이 단순화 하는 툴을 만들었다. 다운로드 : {{:java:unittest:reflectioninjector.7z|}} ===== private 필드 값 주입 예 ===== * 주입하려는 객체의 타입을 자동인식하여 매칭되는 필드에 주입 : ReflectionInjector.set(Object value) * 주입하려는 객체의 타입을 명시하여 해당 타입의 필드에 주입 : ReflectionInjector.set(Class<T> clazz, Object value) * 주입하려는 필드의 이름을 명시하여 해당 필드에 주입 : ReflectionInjector.set(String fieldName, Object value) * 대상 클래스(아래 예에서는 ArticleService)가 어떤 클래스를 상속할 경우, 부모 클래스의 필드도 값 주입의 대상이 된다. <code java> import static kr.pe.kwonnam.reflectioninjector.ReflectionInjectorUtils.injector; ... injector(articleService).set(articleDao) .set(commentDao) .set("userDao", userDao) .set(SearchEngineDao.class, searchEngineDao); </code> ===== private 필드 값 가져오기 ===== * 필드의 타입을 지정하여 해당 타입의 필드를 찾아서 반환 : ReflectionInjector.get(Class<T> clazz) * 필드의 타입과 이름을 지정하여 해당 이름의 필드를 찾아서 반환 : ReflectionInjector.get(Class<T> clazz, String fieldName) <code java> import static kr.pe.kwonnam.reflectioninjector.ReflectionInjectorUtils.injector; ... ReflectionInjector ri = injector(articleService); // 값 설정 작업... CommentDao commentDao = ri.get(CommentDao.class); UserDao userDao = ri.get(UserDao.class, "userDao"); </code>
java/unittest/reflectioninjector.txt
· 마지막으로 수정됨: 2012/01/08 17:05 저자
kwon37xi
문서 도구
문서 보기
이전 판
역링크
맨 위로