2013-07-09 2 views
2

나는 웨어 하우스이라는 Java 클래스가 있으며,이 클래스는 Android의 Bundle을 사용합니다. 나는 다음과 같은 한 단위 테스트에서단위 테스트 방법 JVM에서 Android SDK 클래스를 사용하는 POJO?

public class Warehouse { 
    private Bundle items; 

    public Warehouse(Bundle items) { 
     this.items = items; 
    } 
} 

:

java.lang.RuntimeException: Stub! 

클래스가 다음과 같습니다 단위 테스트를하려고하면, 다음과 같은 예외가

void testInitializeWarehouse() { 
    Bundle items = new Bundle(); 
    Warehouse wh = new Warehouse(items); 
    assertNotNull(wh); 
} 

때 내가 얻을 시험을 실행 java.lang.RuntimeException : 스텁! 이 문제는 Dalvik VM이 아닌 JVM에서 단위 테스트를 실행하는 것과 관련되어 있지만 JVM에서이 단위 테스트를 실행할 수있는 방법이 있습니까?

답변

0

설명 된대로 최종 클래스를 조롱하는 기능을 사용하여 Bundle을 조롱 Powermock를 사용해보십시오. 나는 모의 객체를 사용할 수도 있지만 다음 단위 테스트의 절반이 구성됩니다 망신 시켰 설정 등 해제 송곳니는 안드로이드 SDK 단지 당신이 안드로이드의 개발을 테스트 구동 할 수 있도록

"단위 테스트 프레임 워크 워크 스테이션의 JVM에서 몇 초 안에 테스트가 실행됩니다. "

0

내가 찾던 정확히 무엇 인 Robolectric을 발견 here - Powermock MockFinal

+0

이 경우에는 종속성이 메소드에 주입되는 경우에 해당됩니다. 그러나 POJO에서 직접 Android 클래스를 인스턴스화하는 상황은 어떻게됩니까? 그것은 작동하지 않을 것이다. –

관련 문제