2013-10-07 3 views
1

필자는 @Autowired Foo foo을 한 번만 주입해야하는 테스트 케이스를 가지고 있으므로 모든 테스트 메소드가 동일한 데이터를 다시 사용할 수 있습니다. foo 있습니다. 현재 일어나고있는 것은 @Test 메소드가 호출 될 때마다 foo 빈이 Spring에 의해 깔끔하게 다시로드된다는 것입니다.JUnit + Spring Test에서 객체를 자동 배선 및 주입하는 방법은 무엇입니까?

전체 테스트 클래스에 대해이 빈을 한 번만로드 할 수 있으며 어떻게 완료됩니까?

답변

2

이 동작은 Spring 컨텍스트의로드가 다르므로 환경에 따라 다를 수 있습니다. 예를 들어, Eclipse는 테스트간에 컨텍스트를 자동으로 다시로드하지 않지만 Maven은 테스트를 진행합니다.

@Before 방법을 사용하여 @Autowired 참조를 다른 필드로 복사하고 테스트에서 해당 필드를 사용하도록하는 것이 좋습니다.

+0

합리적인 것 같지만 테스트에서 직접 정의되지 않은 종속 콩에서 transinively 주입되는 콩은 어떻습니까? – carlspring

+0

이 문제 일 수 있으며, 사실 내 솔루션은 컨텍스트가 닫힐 수 있고 더 이상 유효하지 않은 나쁜 아이디어 일 수 있습니다. 범위를 벗어난 컨텍스트에서 bean을 사용하기위한 kludgy를 보입니다. –

+0

실제로 내가 찾던 답변의 종류는 아니지만 해결책입니다 ... 다시 한 번 감사드립니다! – carlspring