6

私は twitter4j を使用して StatusListener クラスを開発しています。クラスをテストできるように、モックの Status オブジェクトを作成する方法が必要です。開発中に実際に API に接続する必要はありません。

JSON文字列からStatusオブジェクトを作成する方法はありますか? Twitter から 1 つのステータスをダウンロードし、それを文字列としてどこかに保存し、開発中にそれを再利用して Status オブジェクトを作成したいだけです。

誰かがこれを行う方法を教えてもらえますか?

4

4 に答える 4

7

1 つのオプションは、MockitoStatusのようなモック テスト フレームワークを使用して実際にモック オブジェクトを作成することです。

オブジェクトが何を返す必要があるかを正確に知っている限り、Statusこれは Twitter API への接続を必要としないメソッドの 1 つです。

たとえば、オブジェクトYourClass.extractStatusTextからステータス テキストを抽出して返すメソッドがあるとします。Status

Mockito を使用すると、次のことができます。

import static org.mockito.Mockito.mock;

// ...

public void testCode() {
  // given - we'll mock a Status which returns a canned result:
  Status status = mock(Status.class);
  when(status.getText()).thenReturn("It's a nice summer day!");

  // when - exercise your class
  String statusText = YourClass.extractStatusText(status);

  // then - check that the status text is returned
  assertEquals("It's a nice summer day!", statusText);
}
于 2011-08-28T13:07:30.050 に答える
2

メソッドを使用しDataObjectFactory.createStatus(String rawJSON)ます。

詳細については、 http://twitter4j.org/en/javadoc/twitter4j/json/DataObjectFactory.htmlを参照してください。

于 2011-12-13T08:06:59.693 に答える
2

接続して 1 つのステータスをダウンロードし、シリアル化して保存します

http://java.sun.com/developer/technicalArticles/Programming/serialization/
http://twitter4j.org/en/javadoc/twitter4j/Status.html
http://twitter4j.org/en/javadoc/twitter4j/StatusJSONImpl .html

独自のオブジェクトを作成するには、コンストラクターのドキュメントに従って、StatusJSONImplクラスとフィード コンストラクターを使用しますtwitter4j.internal.org.json.JSONObject

于 2011-08-28T13:06:39.330 に答える