2011-01-25 3 views
1

저는 Spring-WS와 WebServiceTemplate 클래스를 사용하여 웹 서비스 클라이언트를 작성하고 있습니다. WebServiceTemplate 클래스의 아랫 부분에 WebServiceConnection이 생성됩니다. WebServiceConnection.send는 실제로 메시지를 보내는 데 사용됩니다. 내가 뭘하고 싶은건 WebServiceConnection.send에 대한 호출을 가로 채고 WebServiceConnetion.send에 전달 된 객체를 검사하는 로직으로 대체하는 것이다.AspectJ를 사용하여 단위 테스트에서 제 3 자 객체를 모의 객체로 대체하십시오.

이것이 어 스펙트를 사용하는 좋은 장소가 될 것입니다. 그러나 단위 테스트를 실행할 때만 측면을 실행할 수있는 방법이 확실하지 않습니다. 또한 실행중인 테스트를 기반으로 다른 측면을 실행하고 싶습니다.

누구든지이 작업을 수행하는 방법에 대한 아이디어가 있습니까?

답변

2

런타임 위젯을 AspectJ와 함께 사용할 수 있습니다. 당신은 애플 리케이션에 측면을 컴파일하지 않아도, 그것은 테스트 할 때 그들을 포함시키는 것으로 충분하다.

AspectJ를 사용할 때 classpath에 META-INF/aop.xml이 있어야하고 -agent : myPath/aspectjweaver.jar를 사용하여 JVM을 시작해야하므로 사용할 도구가 있습니다. 테스트 할 때만 AspectJ.

아, 그리고 AspectJ를 사용하여 앱을 컴파일하는 경우, 런타임 짜기와 컴파일 시간 짜기를 결합 할 때 테스트 할 때 여전히 추가적인 측면을 사용할 수 있습니다.

+0

이것은 내가 바라는 해결책이 아니지만 작동하는 것 같습니다. 빌드 스크립트에 약간의 복잡성이 추가되지만 처리 할 수있는 것은 없습니다. 감사 –

관련 문제