如何在 twitter4j 中创建模拟 Status 对象?

发布于 2024-12-01 13:23:29 字数 227 浏览 1 评论 0原文

我正在使用 twitter4j 并开发 StatusListener 类,需要一种方法来创建一个 模拟 Status 对象,以便我可以测试我的类。我不想必须 在我开发时实际连接到 API。

有没有办法从 json 字符串创建 Status 对象?我只想 要从 Twitter 下载一个状态,请将其作为字符串保存在某处,然后 然后在我开发时重用它来创建 Status 对象。

有人可以告诉我该怎么做吗?

I am using twitter4j and developing StatusListener class and need a way to just create a
mock Status object so I can test my class. I don't want to have to
actually connect to the API while I am developing.

Is there a way to create a Status object from json string? I just want
to download one status from Twitter, save it somewhere as a string and
then reuse it to create Status object while I'm developing.

Can someone tell me how to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

不离久伴 2024-12-08 13:23:29

一种选择是使用模拟测试框架(如 Mockito)实际创建模拟 Status 对象。

只要您确切知道 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);
}

One option is to actually create a mock Status object using a mock testing framework like Mockito.

As long as you know exactly what the Status object should return, then this would be one method which would not require any connection to the Twitter API.

Let's say for example that we have a YourClass.extractStatusText method which will extract the status text from a Status object and return that.

With Mockito, we could do the following:

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);
}
○愚か者の日 2024-12-08 13:23:29

使用 DataObjectFactory.createStatus(String rawJSON) 方法。

请参阅 http://twitter4j.org/en/javadoc/twitter4j/json/DataObjectFactory。 html 了解详细信息。

Use the DataObjectFactory.createStatus(String rawJSON) method.

See http://twitter4j.org/en/javadoc/twitter4j/json/DataObjectFactory.html for details.

宣告ˉ结束 2024-12-08 13:23:29

注意这是已弃用

Status status = DataObjectFactory.createStatus();

而是使用:

Status status = TwitterObjectFactory.createStatus(String rawJson);

ATTENTION this is deprecated:

Status status = DataObjectFactory.createStatus();

Instead use:

Status status = TwitterObjectFactory.createStatus(String rawJson);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文