2017-07-03 47 views
6

我目前正在研究一个项目,我们在微服务体系结构中实施了kafka实施。您是否成功为mS创建合同测试用例,以便使用pact-jvm?如何在kafka参与微服务架构时实施合同测试?

我的实现是microservice1向REST客户端发布消息,然后将消息发布到Kafka主题。 microservice2使用GET方法从卡夫卡主题中检索消息。

回答

10

Pact-JVM支持Message Pacts,它封装了消息(单向)通过某种机制(通常是消息队列)的消息。这个想法是测试消费者代码可以通过消费者测试消费消息,然后验证提供者是否生成适当的消息。测试中不使用实际的消息队列。

Contract over a message queue

这最初的开发应用测试合同上通信卡夫卡消息队列微服务。

测试分两部分完成,就像请求响应协议测试一样,除了消费者在消费者协议测试期间读取消息以及写入协议文件是否成功。然后调用提供者代码来生成消息,并将其与pact文件中的内容进行比较。

enter image description here

该条约,JVM文档的相关章节是:

+0

感谢@罗纳德 - holshausen你能还指出,消费者JVM部分所在的合约i请生成? –

+0

当然,这是一个JUnit测试的链接:https://github.com/DiUS/pact-jvm/blob/master/pact-jvm-consumer-junit/README.md#consumer-test-for-a-消息消费者 –