Rabbitmq 如何在spring框架中为RabbitListenerEndpointRegistry编写junit

Rabbitmq 如何在spring框架中为RabbitListenerEndpointRegistry编写junit,rabbitmq,mockito,spring-rabbit,springjunit4classrunner,Rabbitmq,Mockito,Spring Rabbit,Springjunit4classrunner,我有rest控制器来启动/停止rabbitmq队列。这很好。但是我需要为这个rest控制器编写junit。我也做了junit,但看起来不太好。我不确定我们能为这个rest控制器编写junit有多好。请帮我写更好的junit 我们在项目中使用spring框架和mockito 我的休息控制器 package com.compnay.departy.rest; 导入org.springframework.amqp.rabbit.listener.MessageListenerContainer; 导入

我有rest控制器来启动/停止rabbitmq队列。这很好。但是我需要为这个rest控制器编写junit。我也做了junit,但看起来不太好。我不确定我们能为这个rest控制器编写junit有多好。请帮我写更好的junit

我们在项目中使用spring框架和mockito

我的休息控制器

package com.compnay.departy.rest;
导入org.springframework.amqp.rabbit.listener.MessageListenerContainer;
导入org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.web.bind.annotation.GetMapping;
导入org.springframework.web.bind.annotation.RestController;
@RestController
公共类队列控制器{
私有静态最终字符串侦听器\u ID=“lister”;
@自动连线
私有RabbitListenerEndpointRegistry RabbitListenerEndpointRegistry;
@GetMapping(path=“/”+LISTENER\u ID+“/start”)
公共字符串开始(){
MessageListenerContainer listenerContainer=rabbitListenerEndpointRegistry.getListenerContainer(侦听器ID);
listenerContainer.start();
返回“已启动”;
}
@GetMapping(path=“/”+LISTENER\u ID+“/stop”)
公共字符串停止(){
MessageListenerContainer listenerContainer=rabbitListenerEndpointRegistry.getListenerContainer(侦听器ID);
listenerContainer.stop();
返回“停止”;
}
//我为JUNIT创建了这个getter和setter方法。
公共RabbitListenerEndpointRegistry getRabbitListenerEndpointRegistry(){
返回rabbitListenerEndpointRegistry;
}
public void setRabbitListenerEndpointRegistry(RabbitListenerEndpointRegistry RabbitListenerEndpointRegistry){
this.rabbitListenerEndpointRegistry=rabbitListenerEndpointRegistry;
}
}
这是我的JUNIT

package com.compnay.departy.rest;
导入静态org.junit.Assert.assertEquals;
导入静态org.mockito.ArgumentMatchers.anyString;
导入静态org.mockito.mockito.when;
导入org.junit.After;
导入org.junit.Before;
导入org.junit.Test;
导入org.junit.runner.RunWith;
导入org.springframework.amqp.core.MessageListener;
导入org.springframework.amqp.rabbit.listener.MessageListenerContainer;
导入org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry;
导入org.springframework.amqp.support.converter.MessageConverter;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.boot.test.mock.mockito.MockBean;
导入org.springframework.test.context.ContextConfiguration;
导入org.springframework.test.context.junit4.SpringRunner;
导入org.springframework.test.context.support.AnnotationConfigContextLoader;
导入org.springframework.test.web.client.MockRestServiceServer;
导入com.fasterxml.jackson.databind.ObjectMapper;
@RunWith(SpringRunner.class)
@ContextConfiguration(loader=AnnotationConfigContextLoader.class,
classes={ObjectMapper.class})
公共类队列控制器测试
{
私有MockRestServiceServer;
@自动连线
公共可跟踪性restTemplate restTemplate;
@蚕豆
私有RabbitListenerEndpointRegistry RabbitListenerEndpointRegistry;
public QueueController filingListnerController=新建QueueController();
@以前
公共void init(){
server=MockRestServiceServer.bindTo(restemplate.build();
}
@之后
公共空间关闭(){
server.reset();
}
@试验
公共void testStart(){
当(rabbitListenerEndpointRegistry.getListenerContainer(anyString()))。然后返回(新消息ListenerContainer(){
@凌驾
公共停车场(){
//TODO自动生成的方法存根
}
@凌驾
公开作废开始(){
//TODO自动生成的方法存根
}
@凌驾
公共布尔值正在运行(){
//TODO自动生成的方法存根
返回false;
}
@凌驾
public void setupMessageListener(MessageListener MessageListener){
//TODO自动生成的方法存根
}
@凌驾
public MessageConverter getMessageConverter(){
//TODO自动生成的方法存根
返回null;
}
});
setRabbitListenerEndpointRegistry(rabbitListenerEndpointRegistry);
字符串响应=filingListnerController.start();
assertEquals(“已启动”,响应);
}
@试验
公共void testStop(){
当(rabbitListenerEndpointRegistry.getListenerContainer(anyString()))。然后返回(新消息ListenerContainer(){
@凌驾
公共停车场(){
//TODO自动生成的方法存根
}
@凌驾
公开作废开始(){
//TODO自动生成的方法存根
}
@凌驾
公共布尔值正在运行(){
//TODO自动生成的方法存根
返回false;
}
@凌驾
public void setupMessageListener(MessageListener MessageListener){
//TODO自动生成的方法存根
}
@凌驾
public MessageConverter getMessageConverter(){
//TODO自动生成的方法存根
返回null;
}
});
F