2014-01-24 27 views
0

我一直在努力尋找過去的日子來編寫一些測試來檢查我的某些類的反序列化代碼是否正常工作。僞造HTTP Layer for Retrofit的替代方案

我有一個REST服務類的Java包,通過改進與我們的API進行通信。我的想法是使用Robolectric FakeHttpLayer來提供某些響應,並編寫一組測試來檢查我的服務類是否有效地從JSON響應創建Model對象。

  • 似乎robolectric不會攔截網絡調用(即我總是從我們的API獲取實時數據)。我不確定這是爲什麼。
  • 有沒有其他的方法來測試我迄今爲止所寫的內容?對我來說,對這個層進行測試非常重要,因此編寫我們應用程序邏輯層的人有一些可靠的工作,而我正在開發應用程序的其他部分。

謝謝!

回答

4

分別測試這些!

  1. 序列化應該直接用您選擇的序列化機制來測試。

    例如,如果您使用的是JSON和Gson,則需要對您進行反序列化並驗證其結果的JSON字符串。

  2. 基於網絡響應的行爲可以通過使用您在測試中使用的Retrofit界面的僞實現來測試,而不是調用RestAdapter.create

    class FakeFoo implements Foo { // Foo is your Retrofit interface 
        @Override public FooResponse doSomething(FooRequest request) { 
        return new FooResponse("Fake", "Data"); 
        } 
    } 
    
+0

大反饋傑克!我一定會嘗試這個! – dornad