[英]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.