2016-06-02 4 views
1

단위 테스트는 Activity입니다.단위 테스트를위한 활동 초기화

private MyActivity _controller; 

@Before 
public void setUp() throws Exception 
{ 
    ShadowLog.stream = System.out; 

    _controller = Mockito.spy(new MyActivity()); 
} 

그러나 나는 그것을 테스트하기 위해 갈 때 : (ContextThemeWrapper를

java.lang.NullPointerException이 android.view.ContextThemeWrapper.initializeTheme에서 :

@Test 
public void testInitRoot() throws Exception 
{ 
    _controller.initRoot(); 
} 

나는 충돌을 얻을. java : 135)

ch는 컨텍스트가 null이고 제대로 리소스를 얻을 수 없기 때문에 이것이라고 생각합니다.

제 질문은 : 실제로 테스트 목적으로 Activity 개체를 어떻게 만듭니 니 까? 나는 Robolectric에서 실행하여 IntentstartActivity을 사용하지 않을 것입니다. 내가 좋아하는 것 찾고 있어요

MyActivity activity = new MyActivity(validContext); 

답변

2

Robolectric.setupActivity()를 사용하여 활동을 시작하십시오.

private MyActivity mActivity; 
mActivity = Robolectric.setupActivity(MyActivity.class); 
+0

대단히 감사합니다. 이것은 효과가있다! – Aggressor

관련 문제