- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个充当rabbitMQ发送者类的实现类,我正在尝试为此编写单元测试用例,但我对模拟rabbitmq模板有疑问。这是我的发送者类代码:
@Service
public class Car implements CarDelegate {
@Autowired
private RabbitTemplate rt;
@Value("${exchange}")
private String exchange;
@Value("${queue}")
private String queue;
@Override
public ResponseEntity<String> createCar(String model, String name) {
Car car = new Car();
car.setModel(Model);
car.setName(Name);
String jsonString;
jsonString = new ObjectMapper().writeValueAsString(car);
try {
rt.convertAndSend(exchange, queue, jsonString);
} catch (AmqpException e) {
//to implement
}
return new ResponseEntity<>(HttpStatus.ACCEPTED);
}
}
我的发送者类也是我的实现方法。其测试类如下:
@RunWith(MockitoJUnitRunner.class)
public class CarTest {
private Car car;
@Mock
private RabbitTemplate rt;
@Test
public void create_valid() {
Car car = new Car(rt);
car.create("sedan", "arison");
String jsonString = "";
Mockito.doReturn("")
.when(rabbitTemplate.convertAndSend(null, null, jsonString))
.myMethod(Mockito.any(createLeadTest_valid.class));
Mockito.when(rabbitTemplate.convertAndSend(null, null, jsonString)).thenReturn("");
}
}
模拟兔子模板的正确方法是什么
最佳答案
对于您的具体情况,无需向模拟添加行为。
public class CarServiceTest {
@Test
public void create_valid() {
RabbitTemplate rt = Mockito.mock(RabbitTemplate.class);
CarService car = new CarService(rt);
ResponseEntity<String> response = car.create("sedan", "arison");
assertThat(response).isNotNull();
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
}
}
仅供引用,在 HTTP 适配器(通常是用 @Controller
注释的 bean)外部操作 ResponseEntity
并不是一个好习惯。
并且 RabbitTemplate#convertAndSend
应该提供转换机制,因此您不必直接使用Jackson。
希望这对您有帮助!
关于java - 需要模拟 RabbitTemplate 的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55014571/
当我的消息未传递到 RabbitMQ 服务器时,我使用 hystrix 来处理回退场景。当 RabbitMQ 服务器关闭时(抛出 AMQPException ),我的后备将被调用。如果代理无法接受/路
我想从队列中接收消息并立即使它们出队,事实上我想模仿 rabbitMQ 管理控制台的行为,它可以接收消息并重新排队。 所以我的问题是如何做到这一点?起初我试图克隆消息并重新发送它们,但似乎 rabbi
我正在尝试在 RabbitTemplate 的帮助下使用 RabbitMq(我正在使用 Spring Boot 应用程序)。我能够完成通信部分,并且它工作正常,但我有一个问题。 问题:发布消息后如何获
RabbitTemplate 有一个 execute 方法,即 public ,另一个接收 ConnectionFactory 但它是 private 。我可以理解,如果 ConnectionFact
我遇到了以下问题。我正在使用 spring-rabbit-2.0.5.RELEASE 中的 RabbitTemplate 类。并使用它向不同的交易所发送消息。默认情况下一切正常。但是,当删除其中一个交
我刚刚开始尝试使用 Spring 和 rabbitMQ。我想用 rabbit 和 spring 创建一个微服务基础设施,我一直在关注Spring boot tutorial 但它非常简单。我也在查看有
我想使用RabbitTemplate#sendAndReceive向队列发送一条消息并接收多条消息,而不仅仅是一条消息。我想通过使用自己的 MessageListenerContainer 来扩展此行
我正在努力处理带有回调消息的异步 RabbitMQ 消息。 这是我的制作人的一部分: @Autowired(required = false) @Qualifier("rabbitTemplate")
我有一个充当rabbitMQ发送者类的实现类,我正在尝试为此编写单元测试用例,但我对模拟rabbitmq模板有疑问。这是我的发送者类代码: @Service public class Car impl
我将 RabbitMQ 与 Spring 的 RabbitTemplate 结合使用。 使用模板发送方法向队列发送消息时,如果队列不存在,我希望自动创建/声明队列。 这非常重要,因为根据我们的业务逻辑
我正在使用 spring-rabbit1.1 和 RabbitMQ 3.3.1 , 我的 spring 配置将在 Rabbit MQ 上的 RabbitTemplate 的帮助下创建任何队列,但如果队
使用 Spring AMQP,当调用方法 rabbitTemplate.send(message) 返回时(来自 org.springframework.amqp.rabbit.core.Rabbit
我有一个计划任务,它执行以下代码: try { rabbitTemplate.convertAndSend("TEST"); if (!isOn()) {
我将我的代码编辑成这个配置: @SpringBootApplication public class EndPoint { String QUEUE_PROCESSING_TRANSACTION =
我正在使用带有 rabbitMQ 的 spring-boot,我想知道我是否可以使用 RabbitTemplate 使用每条消息 TTL。到目前为止我有: @Autowired private
我是 RabbitMQ 的新手,目前正在处理 RabbitMQ 在我的 Web 应用程序中发布确认确认。对于每个新请求,将消息发送到 RabbitMQ 服务器以异步处理它,并启用确认以从 RMQ 服务
我有以下程序写在Spring Boot这工作正常。但是,问题是我不确定是否应该使用 RabbitTemplate或 AmqpTemplate .一些在线示例/教程使用RabbitTemplate而其他
我尝试使用 RabbitTemplate(使用 Spring Boot)在队列上发布一条消息,我收到了这条消息。我已经尝试寻找解决方案。 Caused by: java.lang.IllegalArg
我正在尝试创建一些集成测试,并且想删除注入(inject) RabbitTemplate 的构造函数。这样做的最好方法是什么?以下是当前应用程序服务构造函数的示例,并且 amqp 变量用于进一步创建消
我编写了一个脚本,它使用 Spring Rabbit 将大量消息放入 Rabbit 队列中,使用 RabbitTemplate.convertAndSend ,然后退出。但是,即使在消息入队后,Rab
我是一名优秀的程序员,十分优秀!