Wednesday, October 27, 2010

Fitnesses + Spring

Spring에, Fitnesses를 붙혀서, Fixture기반의 테스트를 하려고 시도하였는데,
딱히 잘되지 않았다.

Spring 3.0 기반으로 개발을 진행하다 보니, Annotation 기반으로, 개발을 하는데,

Junit4에서 SpringJunit4ClassRunner를 띄워 ApplicationContext를 Loading 하고 싶었는데,
Fitnesses Library를 Support하는 Spring Supportor Class도 없고, Fitnesses쪽에서도
지원하는 게 없다.

그래서 결국 ClassPathXmlApplicationContext Object를 생성해서, ApplicationContext를 Loading했고,
getAutowireCapableBeanFactory().autowireBean를 호출함으로써, FixtureClass내의

@Autowired된 Object를 Inject 하였다.


현재 상태로 목적은 달성하였지만, Fixture마다 다 호출 해주어야하기때문에 영 맘에 들지 않는다.


Library를 수정하지 않고, 어떤 깔끔한 방법이 없을까?


Sporing 이라는 Library에서 Static Method 기반으로 호출하여 해결하려는 걸 본적 있는데,

이것도 영 맘에 안든다.


Spring-Fitnesses Project라는곳에서는 SpringRowFixture등을 재정의해서 활용 하는것 같은데,


이것도 글쎄,, 해당 Class마다 FixtureLibrary Class를 상속받고 Spring에 필요한것들을 중복하여 써주는 형식이거나 Static Method를 호출하는 형식일텐데..

이것도 맘에 들지 않는다.


시간이 나면 Library를 수정해서, Junit4의 @Runwith 같은 형식으로 해결할수 있게 해볼까 한다.


No comments:

Post a Comment