2012-01-16 5 views
0

문제 : 확장 클래스의 반환 개체에 메서드를 스텁링 할 수 없습니다. 스텁하려는 메서드에 null 포인터가 있습니다. 먼저 스파이를 수행해야합니까? 나는 그것을 시도하고 작동하지 않았다.확장 메서드가있는 PowerMokito 문제

테스트 프레임 워크 : PowerMockito 버전 1.9 PowerMock 버전 1.4.11 EasyMock에 버전 테스트를 시도 코드의 3.1

라인.

String expected = methodFromExtendedClass_GetObject().getStringValueFromReturnObject();

테스트 코드

PowerMockito.stub(MemberModifier.method(ExtendedClassA.class, "methodFromExtendedClass_GetObject()")).toReturn(new testObject());

PowerMockito.stub(MemberModifier.method(testObject.class, "getStringValueFromReturnObject")).toReturn(testString);

답변

0

은 내가 EasyMock에 구문을 잘 모릅니다,하지만 난 Mockito을 알고있다. 나는 여기서 너무 많이 다루지는 않지만, Stubbed Object를 생성하여 문자열을 반환하는 또 다른 Mock을 반환하려고하는 것만 같다.

그래서, 모의 테스트 오브젝트 생성하는 경우 :

PowerMockito.stub(MemberModifier.method(ExtendedClassA.class, 
      "methodFromExtendedClass_GetObject()")).toReturn(testObject); 
:

TestObject testObject = mock(TestObject.class); 

when(testObject.getStringValueFromReturnObject()).thenReturn(testString); 

이 그런 다음 스텁에 대한 반환으로 그 모의를 사용을