我需要为下面的代码编写junit测试,我在这里使用executorService,但我不知道为此编写测试。
@PostConstruct
public void init() {
executorService = Executors.newFixedThreadPool(threadPool);
}
public void processMessage(Message receivedMessage) {
executorService.submit(() -> {
try {
Uncovered code
String threadName = Thread.currentThread().getName();
log.info("Thread " + threadName);
if (receivedMessage instanceof TextMessage) {
TextMessage textMessage = (TextMessage) receivedMessage;
String messageText = textMessage.getText();
restServiceConnector.postApiCallForRetry(messageText);
log.info("Received Message from Queue: " + messageText);
}
} catch (Exception e) {
e.printStackTrace();
}
});
}
假设您不想测试
ExecutorService
,您可以将代码提取到包私有函数中,然后您可以自己进行测试。
@PostConstruct
public void init() {
executorService = Executors.newFixedThreadPool(threadPool);
}
public void processMessage(Message receivedMessage) {
executorService.submit(() -> {
try {
myFunc(receivedMessage);
} catch (Exception e) {
e.printStackTrace();
}
});
}
void myFunc(Message receivedMessage){
String threadName = Thread.currentThread().getName();
log.info("Thread " + threadName);
if (receivedMessage instanceof TextMessage) {
TextMessage textMessage = (TextMessage) receivedMessage;
String messageText = textMessage.getText();
restServiceConnector.postApiCallForRetry(messageText);
log.info("Received Message from Queue: " + messageText);
}
}