2013-02-11 376 views
2

我有一個測試類,但總是得到NullPointerExceptiontearDown(),有誰知道爲什麼?solo.finishOpenActivities()始終爲空

public class LaunchManagerActivityTest extends ActivityInstrumentationTestCase2<LaunchManagerActivity> { 

    private Solo solo; 

    public LaunchManagerActivityTest() { 
     super(LaunchManagerActivity.class); 
    } 

    @Override 
    protected void setUp() throws Exception { 
     super.setUp(); 

     solo = new Solo(getInstrumentation(), getActivity()); 
    } 

    @Override 
    protected void tearDown() throws Exception { 
     super.tearDown(); 
     solo.finishOpenedActivities(); 
    } 

    public void testOne() { 

    } 

    public void testTwo() { 

    } 

回答

12
@Override 
    protected void tearDown() throws Exception { 
     super.tearDown(); 
     solo.finishOpenedActivities(); 
    } 

實際上應該是:

@Override 
    protected void tearDown() throws Exception { 
     solo.finishOpenedActivities(); 
     super.tearDown(); 
    } 

的超級計算機拆機將關閉得到推出,但隨後robotium會感到困惑,因爲它認爲一個活動是開放的活動,當它試圖做與它的東西,它是空的。

+0

你做了我的一天。 – Eugene 2013-02-11 10:02:19

+0

隨時upvote並接受我所有的答案,讓我回來! – 2013-02-11 10:04:00

+0

當在ActivityInstrumentationTestCase2中調用super.teardown()和solo.finishOpenedActivities()時,我在android 2.3.3中遇到了一些問題。只有調用其中一個,才能讓我的測試在隨機時間不崩潰整個測試過程的情況下運行。 – 2013-08-29 14:57:03