spring rabbitmq/amqpをモックする方法は、春のブートテスト中に失敗することはありませんが、自動交換/キューを作成しようとしていますか?春のブートテストでspring amqp/rabbitをモックする方法
私はキューと交流の原因になります簡単なRabbitListener
オートはこのように作成する必要があるとします。
@ActiveProfiles("test")
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, classes = { Application.class })
@Autowired
private ApplicationContext applicationContext;
@Test
public void test() {
assertNotNull(applicationContext);
}
}
それは以下となります。このように、シンプルな春Bootテスト中に
@Component
@RabbitListener(bindings = {
@QueueBinding(
value = @Queue(value = "myqueue", autoDelete = "true"),
exchange = @Exchange(value = "myexchange", autoDelete = "true", type = "direct"),
key = "mykey")}
)
@RabbitListenerCondition
public class EventHandler {
@RabbitHandler
public void onEvent(Event event) {
...
}
}
を失敗する:
16:22:16.527 [SimpleAsyncTaskExecutor-1] ERROR o.s.a.r.l.SimpleMessageListenerContainer - Failed to check/redeclare auto-delete queue(s).
org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused
at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:62)
at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:309)
私はウサギ/ AMQPは気にしませんが、だから、ウサギ/ AMQP全体をどうやって嘲笑することができますか?
十分な奇妙な、それは1.5.6で動作するように使用:Mockito.mock(AmqpTemplate.class) - が、今1.6で。1これはもはや動作しません:( – domi
私は正しい場合、これはまた、私はそのような構成を持っているときに私は完全なコンテナで任意のSpringBootテストケースを使用することができないことを意味します:( – domi
テンプレートを嘲笑は十分ですAmqpTemplateはシンプルなインターフェースであり、1.6にはそれをモックする能力が変わっていないことは何もありません。 –