2011-06-22 30 views
1

我有一個Android應用程序通過套接字與服務器進行通信。我還實現了協議緩衝區類型的消息以獲取有關通信的更多信息。如何嘲笑一個「服務器 - 安卓設備」通信

我還沒有在服務器上實現所有的邏輯來響應android客戶端請求。因此,我無法在客戶端測試發送請求時會發生什麼情況。我可以使用什麼來幫助我測試此問題?是否有一種(簡單)創建模擬服務器的方式來模擬響應?

有人告訴我,在這裏讀到一些關於JUnit和也的內容:http://developer.android.com/guide/topics/testing/testing_android.html ,但不知道它的走在正確的道路..

謝謝

EDIT1

對不起是在匆忙的時候寫的話題。 感謝您的所有答案,但我認爲我的情況有點不同。 通信協議是TCP,消息類型爲「協議緩衝區」,不是XML或JSON。所以Maque看起來很酷,但在這裏不行。 此外,服務器端是在C#上開發的,而不是Java。

再次感謝你

回答

0

如果您的服務器使用Java太(Servlet的/ JSP),你可以分享的消息處理邏輯,並在其上定義一些單元測試。

0

我們在開發過程中不得不解決類似的問題。你有幾個選擇 - 這很有意義取決於你的情況以及你想要測試的內容。

在我們的一些測試中,我們使用了一個非常簡單的HTTP服務器(我們的協議運行在HTTP之上)運行在主機上,該主機配置了對特定請求的響應。我們使用Python的SimpleHTTPServer類編寫它。這種方法的好處是您正在進行完整的端到端測試,包括Android網絡堆棧。缺點是安裝起來很麻煩(我們有一個在開發機器上運行的測試工具,啓動服務器,在模擬器或設備上運行測試並收集結果)。

如果您想要模擬設備本身的底層代碼,請參閱Borachio進行模擬,並參考RoboGuice進行依賴關係注入。有一個完整的工作示例如何執行此操作here

最後,您可能可以使用Robolectric並在您的開發機器上運行測試。缺點是您的測試不會在Android設備本身上運行,並且您可能很難有效地測試代碼與操作系統之間的交互。

0

如果您使用HTTP作爲您的套接字/服務器協議,那麼您可能需要檢出一個名爲Maque的新應用程序。它旨在幫助測試和開發HTTP和數據驅動的應用程序。它具有內置的HTTP 1.1服務器,並提供了一個UI,允許您創建API和測試請求,而無需編寫或部署服務器堆棧。

如果您正在運行像Paul這樣的自動化測試,那麼您可能會遇到一些與啓動應用程序然後運行應用程序然後關閉應用程序相同的挑戰,但對於開發和定期測試,它應該處理您要查找的內容。

你可以得到跨平臺(OS X,Windows和Linux)測試在這裏:http://maqueapp.com/getBeta.html