Dmi*_*tri 6 java twitter twitter4j
我正在使用twitter4j并开发StatusListener类,需要一种方法来创建一个模拟Status对象,以便我可以测试我的类.在开发过程中,我不想实际连接到API.
有没有办法从json字符串创建一个Status对象?我只想从Twitter下载一个状态,将其保存为字符串,然后在我开发时重复使用它来创建Status对象.
谁能告诉我怎么做?
一种选择是Status使用像Mockito这样的模拟测试框架来实际创建模拟对象.
只要您确切知道该Status对象应该返回什么,那么这将是一种不需要任何连接到Twitter API的方法.
比方说,我们有一个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);
}
Run Code Online (Sandbox Code Playgroud)
连接并下载一种状态,然后通过序列化保存它
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根据构造函数文档提供构造函数