2011-11-10 172 views
0

我是寫jUnit測試的完全noob。我有一個Android程序,必須爲它編寫測試。我知道如何和我用robotium編寫測試,但現在我需要功能測試,而且我不會從哪裏開始。我有一個函數從我的代碼:如何編寫android jUnit功能測試

private void onCoordinatesUpdate(Location loc){ 
    List<Event> list = wc.requestEvents(loc.getLatitude(), loc.getLongitude()); 
    if(list != null){ 
     adapter = new EventsArrayAdapter(this.getApplicationContext(), R.id.eventsView, (ArrayList<Event>)list); 
     ev.setAdapter(adapter); 
    } 
} 

我必須爲它編寫測試。對我而言,問題在於我不知道如何編寫測試,它會檢測IF語句中的表達式是否已從「list!= null」更改爲「list == null」。測試的唯一想法是我能想到的是:

public void testCheckInternet(){ 
    assertTrue(mClassToTest.checkInternet()); 
} 

但他的測試只檢查設備是否連接到互聯網,就是這樣。我不需要任何人爲我寫測試,但也許有人可能會告訴我的方式:)如何開始:)預先感謝。

回答

0

方法您提供的是私人並因此很難用JUnit進行測試。在使用JUnit進行單元測試時,您應該只測試公共方法。私人方法將被間接測試。 如果你想要明確測試你的類中有私有方法,你應該重新考慮你的類設計。一種解決方案是將這種私人方法提取到一個新類中,並公開該方法。

一般來說,有代碼是可測試的,有代碼是不可測試的。 測試驅動開發是一種幫助設計可測試代碼的技術。一個好的起點是the JUnit documentation

1

請參閱Android開發者指南的Testing部分。

+0

其實我讀了所有這些,我明白測試的工作原理。事情是,我不明白如何編寫檢查IF條件的測試,或者例如FOR循環中的初始值。我無法在互聯網上找到任何樣本,我只需要一個例子。 – JNM

+0

請看我上面給你的。它有它的例子。 –