繁体   English   中英

可运行类和队列的 Junit

[英]Junit for runnable class and Queue

我有一个实现 Runnable 的 Processor 类。

第一种方法

Public Processor implements Runnable{

 //"Event" is the name of this queue
 PersistentQueue<Event> persistentQueue = new PersistentQueue<>("Event");

 //add the Event POJO to the persistentQueue
 public void addToQueue(Event, event) {
     persistentQueue.add(event);         
}

PersistentQueue 是用来存放Event POJO

和运行方法

public void run() {
      while (true) {
       if (!persistentQueue.isEmpty()) {

        Event peekEvent = persistantQueue.peek();
        sendRequest(peekEvent);
      }
    }
  }

 public void sendRequest(Event, event){

  // do something to send the event
}

对于第一个 addToQueue 方法,我编写了测试

public class ProcessorTest {

   private Event event;
   private Processor m_Processor;

  @Before
  public void setup() throws IOException {
  //the Processor class is a singleton
  m_Processor = Processor.getProcessor();
  event = new Event();
 }

  @Test
  public void test(){
   PersistentQueue<Event> persistentQueue = new PersistentQueue<> 
 ("Event");
    m_Processor.addToQueue(event);
    assertEquals(1, persistentQueue.size());
  }
}

但是队列大小是 0 而不是 1。我不知道有什么问题。 我也有关于如何测试 run 方法的问题?

在您的test方法中,您创建了一个与m_Processor实例无关的新队列; 它完全没有使用。 您需要更改代码,以便获取包含在m_Processor实例中的PersistentQueue实例。 假设您在Processor有一个名为getPersistentQueue的 getter 方法,那么您可以使用以下内容:

@Test
public void test() {
    m_Processor.addToQueue(event);
    assertEquals(1, m_Processor.getPersistentQueue().size());
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM