当前位置: 首页 > 知识库问答 >
问题:

合同测试-根据合同验证消费者和生产者

董建茗
2023-03-14

我已经为契约测试做了演示应用程序。下面是我提到的链接。我已经改变了一些东西,像图案匹配器和体型。https://www.javacodeGeeks.com/2017/03/Consumer-drived-testing-pact-spring-boot.html

我能够从消费者发布协议,并从提供方验证它。

我也被要求从消费者端验证协议。例如。使用者将json发送给提供者以创建新用户。

  {
  "address": {
    "city": "string",
    "houseNumber": 0,
    "postalCode": "string",
    "street": "string"
  },
  "name": "string",
  "registrationId": 0,
  "surname": "string"
}

但现在consumer更改了模型类。(因为它也是一些其他服务提供商。它可能获得更改更改合同的请求)。下面是将生成的新请求json。

{
  "address": {
    "city": "string",
    "houseNumber": 0,
    "postalCode": "string",
    "street": "string"
  },
  "firstname": "string",
  "registrationId": 0,
  "surname": "string"
}

共有1个答案

昌正奇
2023-03-14

使用者测试类似于单元测试。如果您的代码在测试中做了您期望的事情,它总是会通过的。它不依赖于先前的状态(如先前生成的合同)。

在该过程中,您将检查突破性更改的部分是使用can I deploy工具(https://docs.pact.io/pact_broker/can_i_deploy)在CI中。

 类似资料:
  • 我目前正在开发Kafka模块,我正在使用Kafka通信的抽象。我能够集成生产者 Spring Boot测试类 监听器类 我的问题是:在测试类中,我断言分区、有效负载等是从BlockingQueue轮询的,然而,我的问题是如何验证用KafkaListener注释的类中的业务逻辑是否得到正确执行,并根据错误处理和其他业务场景将消息路由到不同的主题。在一些示例中,我看到了CountDownLatch的断

  • 我有一个生产者/消费者场景,我不希望一个生产者交付产品,多个消费者消费这些产品。然而,常见的情况是,交付的产品只被一个消费者消费,而其他消费者从未看到过这个特定的产品。我不想实现的是,一个产品被每个消费者消费一次,而没有任何形式的阻碍。 我的第一个想法是使用多个BlockingQueue,每个消费者使用一个,并使生产者将每个产品按顺序放入所有可用的BlockingQueues中。但是,如果其中一个

  • 本教程演示了如何发送和接收来自Spring Kafka的消息。 首先创建一个能够发送消息给Kafka主题的Spring Kafka Producer。 接下来,我们创建一个Spring Kafka Consumer,它可以收听发送给Kafka主题的消息。使用适当的键/值序列化器和解串器来配置它们。 最后用一个简单的Spring Boot应用程序演示应用程序。 下载并安装Apache Kafka 要

  • 我有两个线程的问题,似乎没有正确同步。我基本上有一个布尔值名为“已占用”。当没有线程启动时,它被设置为false。但是当一个线程启动时,线程集被占用是真的,我有一个类,它有线程(run),它们调用下面的函数。 这是一个模拟银行的示例,它接收一个金额(初始余额),然后随机执行取款和存款。我的教授提到了一些关于从取款线程到存款线程的信号?这是怎么回事?在提取线程中,它应该运行到余额为2低,并等待存款线

  • 我正在使用Pactman和pact-python为CDC测试做一个POC。我可以生成协议文件和验证协议与提供商的基本url而不注册到协议代理,我使用以下方法。它将检查任何失败,这是最好的做法还是我需要使用代理?

  • 我试图找到一种在以下场景中使用ThreadPoolExecutor的方法: 我有一个单独的线程在线程池中生成和提交任务 为了提供更多的上下文,我目前只需一次提交所有任务,并取消ExecutorService返回的所有未来。在最长生成时间到期后提交。我忽略所有产生的取消异常,因为它们是预期的。问题是未来的行为。cancel(false)很奇怪,不适合我的用例: 它可以防止任何未启动的任务运行(良好)