标签: micronaut-rabbitmq

在测试兔子消费者时,如何在 micronaut 中使用 spock 来模拟服务?

我目前正在与:

  • 麦克诺3.7.3
  • RabbitMQ 3.11.2
  • 斯波克
  • Groovy / Java 17

我正在按照 micronaut 项目( https://micronaut-projects.github.io/micronaut-rabbitmq/3.1.0/guide/index.html)的指南为一个简单的演示项目实现一个rabbitmq消费者。

我正在尝试模拟一个服务,该服务是我的rabbitmq 消费者的依赖项。

我尝试过这种方法似乎不起作用:

@MicronautTest
@Subject(SampleRequestConsumer)
class SampleRequestConsumerSpec extends Specification {

    @Inject
    ExternalWorkflowProducer externalWorkflowProducer

    @Inject
    SampleRequestConsumer sampleRequestConsumer

    @Inject
    SimpleService simpleService

    @MockBean(SimpleService)
    SimpleService simpleService() {
        Mock(SimpleService)
    }


    def "It receives a sampleRequest message in the simple.request queue"() {
        when:
        externalWorkflowProducer.send(new SampleRequest(message: "Request1"))

        then:
        sleep(100)

        1 * simpleService.handleSimpleRequest(_ as SampleRequest) >> { SampleRequest request ->
            assert request.message != null
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

运行集成测试时出现此错误:

Too few invocations for:

1 * …
Run Code Online (Sandbox Code Playgroud)

rabbitmq spock micronaut micronaut-rabbitmq

7
推荐指数
1
解决办法
398
查看次数

标签 统计

micronaut ×1

micronaut-rabbitmq ×1

rabbitmq ×1

spock ×1