2012-02-17 3 views
2

스프링 빈 구성을 통해 조롱 된 객체 (Mockito 사용)를 설정하려고하지만 해당 객체에 MockSettings을 설정하는 방법을 모르겠습니다. 특히 직렬화 가능한 객체를 설정하고 싶습니다.Mockito - 스프링을 사용하는 MockSettings

Object serializableMock = mock(Object.class, withSettings().serializable()); 
<bean id="object" name="object" class="org.mockito.Mockito" factory-method="mock"> 
    <constructor-arg value="object" /> 
    <constructor-arg value="org.mockito.MockSettings"> ??? </constructor-arg> 
</bean> 

사람이 어떻게 그렇게 나를 인도 할 수 :

는, 프로그램이 가능하다? 미리 감사드립니다.

BTW : 순수한 XML 구성을 사용하고 싶습니다.

답변

1

XML을 통해서만 가능합니다.

사실 나는 테스트를 위해 봄에 모키 토 모의 (mockito mocks)를 사용하는 것을 권장하지 않습니다. 단위 테스트, 당신은 고립에서 하나 클래스를 테스트 할 때 스프링 DI이 경우 전혀 필요하지 않습니다 그래서

  • 일반적으로, 그것은, 결국 단위 테스트입니다 : 여기 왜. 시험 대상의 공동 작업자를 직접 또는 어쩌면 편리한 @InjectMock 주석을 통해 삽입 할 수 있습니다.

  • 그러나 데이터베이스가있는 DAO와 같은 다른 시스템으로 테스트해야하는 경우 실제로는 실제 DB 또는 H2와 같은 메모리 DB에 연결하기 위해 Spring 배선이 필요할 수 있습니다. 그러나이 경우 통합 테스트을 만들고 있습니다. 그리고이 경우 모의가 필요하지 않을 것입니다. 말했다

, 특정 요구 사항이있을 수 있습니다 및 위의 지점이 특정 제한된 상황에 관련이있을 수 있습니다. 그러나 다시 말하지만, 제 생각에 그것이 구체적이라면 간단한 MockSettings factory bean (구성 가능할 수도 있음)을 직접 제작하는 것이 과도하다고 생각하지 않습니다.

예. 당신은 응용 프로그램의 기술적 모듈이 한 번에 대한 모든 작성할 수

public class SpringMockSettingsFactoryBean extends AbstractFactoryBean<MockSettings> { 
    @Override public Class<Multimap> getObjectType() { 
     return MockSettings.class; 
    } 

    @Override protected Multimap<String, String> createInstance() throws Exception { 
     // ... your code 

     return mockSettings; 
    } 
} 

는 mockito 봄에 네임 스페이스를 집중하도록 시도의 bitbucket에서 프로젝트 springockito있다. 나는 프로젝트가 그렇게 할 수 있다고 생각하지 않지만 프레임 워크의 저자는이 기능을 구현하는 데 관심이있을 수있다.

희망이 있습니다.

0

그래, 당신은 XML을 통해 그것을 할 수

 


            
 
<bean id="mockSettings" class="org.mockito.Mockito" factory-method="withSettings" init-  method="verboseLogging"> 
 

 
    </bean> 
 
    <bean id="sqsHelper" class="org.mockito.Mockito" factory-method="mock"> 
 
     <constructor-arg value="com.elsevier.vtw.aws.helper.SQSHelper"/> 
 
     <constructor-arg ref="mockSettings" /> 
 

 
    </bean>