【发布时间】:2016-05-09 09:42:42
【问题描述】:
我有一个连接到 Socket.IO 服务器的服务。这是一个简单的应用程序,它发送一条消息并将其回显给客户端。我有一个测试如下:
@Test
public void checkSendMessage() {
final String testMessage = "Here is a test message";
onView(withId(R.id.textEntry)).perform(typeText(testMessage), closeSoftKeyboard());
onView(withId(R.id.send)).perform(click());
onView(withId(R.id.messages)).check(matches(withText(containsString(testMessage))));
}
我的服务器在我的本地网络上运行,在这种情况下,一切都运行并通过。但是,如果我在服务器中添加 3 秒延迟,则测试失败。我基本上想说最多等待 X 秒,然后检查它是否包含文本。
我在回答使用 IdlingResource 的人中看到了类似的问题。但是我不确定如何将它集成到我的应用程序中。我想我必须实现 isIdleNow 函数。我正在使用连接到 com.koushikdutta.async.http.socketio.SocketIOClient 的服务;
但它永远不会闲置,它只是坐在那里监听套接字。所以我并不是真的在等待完成,我只想继续检查视图长达 X 秒,看看是否有消息到达。我该怎么做?
【问题讨论】:
标签: android socket.io android-espresso