2014-07-02 40 views
0

我想添加測試到一個相當大的android項目。所以,我可以將測試添加到片段的活動中,並讓它們正確運行。 但在我的情況下,大多數片段在啓動時會啓動一個Runnable進入一個新的線程。此線程連接到API,請求和解析數據,並將它們返回給調用片段中的處理程序。 現在的問題是:我應該如何讓測試等待數據被處理程序檢索,以便我可以檢查它們的值?在android中的功能測試。如何等待片段結果?

回答

0

如何而不是等待值從實際對象返回。您可以創建可立即返回任何值的模擬對象。 Mockito是一個非常好用的模擬框架,在Android上非常容易使用。

http://code.google.com/p/mockito/

你去使用它來創建mock對象,而不是真正的對象,你必須找到「接縫」將它們插入到你的測試方式。用模擬對象,你可以得到它返回你想要的任何值的任何方法。藉助模擬對象,可以分離依賴關係。因此,在您的示例中,您可能希望創建模擬連接到api的對象的模擬對象,因爲那樣您可以返回測試需要的任何值,以便服務器返回以測試您正在測試的應用程序的任何部分。例如,如果在服務器返回用戶輸入錯誤密碼的情況下測試signUp活動是否已打開,則創建一個模擬對象,該對象將返回false給您的活動,然後將其插入到真實對象應該放置的位置。

大多數人在測試現有代碼時存在問題(這些代碼沒有考慮到可測試性),因爲通常沒有任何接縫插入測試對象。看看這個關於如何使代碼更易於測試的真棒博客。它包含真正偉大的建議。

http://googletesting.blogspot.com/2008/08/by-miko-hevery-so-you-decided-to.html

+0

......我沒有想過這個。你是完全正確的,我會嘗試! – marino

+0

太棒了...讓我知道它是如何去。 –

+0

這似乎是一個非常好的圖書館,但我真的不能理解使用它的優點。手動創建我的對象有什麼不同?! – marino