能否将Message Pact用于ActiveSupport::Notification消息?
Message Pact与ActiveSupport::Notification的适配说明
Message Pact是一种非HTTP的契约测试方案。
ActiveSupport::Notification属于Rails ActiveSupport的组件。
由于ActiveSupport::Notification底层采用内存队列,无法满足Pact对外部请求的依赖要求,因此需要借助Kafka这类消息队列来衔接,示例代码如下:
ActiveSupport::Notifications.subscribe("my_message") do |payload| Kafka.produce(queue: 'test-queue', message: payload) end
上述代码中的Kafka.produce可由Pact进行处理。
不过从合理性角度考虑,直接移除ActiveSupport::Notification、仅使用Kafka会更优,这可以作为后续的优化步骤。
内容的提问来源于stack exchange,提问作者Alex Strizhak
相关产品推荐
相关产品推荐

