断言我收到了10条消息

时间:2016-09-08 13:31:12

标签: java

我试图断言我收到了来自pubnub的10条消息。我确实将它们接收到控制台。然而,断言我的正确方法是什么。我不完全确定我应该使用什么语法。

@Test
public void testPublisher() throws PubnubException {



     // Send 10 messages
    for(int i = 0; i <= 10; i++){
        service.publish("my_channel", "Message: " + i);
    }

    // Wait until we have recieved the 10 messages
    do{}while(service.count() <= 10);

    // For each message print out the details
    service.getMessages().forEach(System.out::println);

    assertArrayEquals(service.count());
}

2 个答案:

答案 0 :(得分:0)

你应该可以使用
assertTrue(service.count() == 10);

答案 1 :(得分:0)

您的do...while循环被称为“忙碌旋转”,在大多数情况下被视为反模式,应该避免。繁忙的旋转会在CPU等待时使CPU崩溃,如果出现问题并且没有收到10条消息,您的实施也可以永久运行。

https://en.wikipedia.org/wiki/Busy_waiting

您应该考虑一种阻止机制......可能会出现超时等问题 BlockingQueue.take()BlockingQueue.poll()CountdownLatch.await()