0

私は過去数日間、いくつかのクラスの逆シリアル化コードが機能しているかどうかを確認するためのテストを書くのに苦労してきました。

Retrofit を介して API と通信する REST サービス クラスの Java パッケージがあります。私のアイデアは、Robolectric FakeHttpLayer を使用して特定の応答を提供し、サービス クラスが JSON 応答から Model オブジェクトを効果的に作成することを確認する一連のテストを作成することでした。

  • Robolectric はネットワーク呼び出しを傍受していないようです (つまり、常に API からライブ データを取得しています)。なぜだかわかりません。
  • これまでに書いたものをテストする他の方法はありますか? このレイヤーをテストすることは私にとって非常に重要です。これにより、アプリのロジック レイヤーを作成している担当者が信頼できる作業を行えるようになり、その間、私はアプリの他の部分に取り掛かることができます。

ありがとう!

4

1 に答える 1

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");
      }
    }
    
于 2014-01-26T09:39:02.770 に答える