스프링 컨테이너로 주입되는 방법을 모의 주입 방법으로 모의 할 수있는 방법이 있습니까? 모킹 스프링 IOC 방법의 주입 방법
내가 그것을public abstract class Singleton {
protected abstract LoanField check();
private LoanField getLoanField(String name) {
LoanField field = check();
}
하고 구성을 해당 이제 스프링 설정 파일 중 하나가 추상 메소드가 싱글이라는 추상 클래스가 나를
세부
설명해 보자. 여기<bean id="checkDetails" class="com.abc.tools.Singleton">
<lookup-method name="check" bean="field"/>
</bean>
<bean id="field" class="com.abc.tools.LoanField" scope="prototype"/>
는 여기에 방법 사출 봄 짧은
Singleton fieldManager = Mockito.mock(Singleton.class, Mockito.CALLS_REAL_METHODS);
LoanField loanField = PowerMockito.mock(LoanField.class);
PowerMockito.when(fieldManager.create()).thenReturn(loanField);
실제 문제에서 내 테스트 클래스 추상 클래스의 주어진 추상적 인 방법을 무시하고, 오버라이드 (override) 된 메소드의 구현하지만, 때를 제공하는 전 추상적 인 방법을 스텁
java.lang.AbstractMethodError: com.abc.tools.Singleton.create()Lcom/abc/tools/LoanField;
at com.abc.tools.SingletonTest.loanFiledNotNull(SingletonTest.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:66)
at
내가이 가능하지 알고 난 오류가 아래지고있어 내 테스트 클래스에서 그 방법을 스텁하려고하지만, 모든 작업은 일을 스텁 주위에있다 전자 방법? 제발 도와주세요.
시 : 나는 @preparefortest
테스트 코드 표시 –
@Nir Levy는 테스트 클래스 코드 스 니펫 –