【问题标题】:Pact - contract testing - verify consumer and producer against contractPact - 合同测试 - 根据合同验证消费者和生产者
【发布时间】:2020-08-14 08:48:29
【问题描述】:

我已经为 Pact-Contract 测试制作了演示应用程序。以下是我提到的链接。我已经改变了一些东西,比如patternmatcher和bodytype。 https://www.javacodegeeks.com/2017/03/consumer-driven-testing-pact-spring-boot.html

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

我也被要求从消费者端验证协议。 例如。消费者根据 json 向提供者发布以创建新用户。

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

但是现在消费者改变了模型类。 (因为它也是其他一些服务的提供者。可能会收到更改合同的请求)。以下是将生成的新请求 json。

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

随着请求对象的改变。如果我根据协议验证消费者。它应该会失败。

问题:当我从消费者运行 mvn:verify 时,它总是可以的。我希望它失败。

附:让我知道这是否不正确。

【问题讨论】:

    标签: testing verify pact contract


    【解决方案1】:

    消费者测试类似于单元测试。如果您的代码在测试中符合您的预期,它将始终通过。它不依赖于先前的状态(例如先前生成的合约)。

    在 CI 中使用我可以部署工具 (https://docs.pact.io/pact_broker/can_i_deploy) 检查重大更改的过程部分。

    【讨论】:

    • 难道不能用 maven 来做吗?我只想在开发期间打破它。
    • 我不知道是否存在 can-i-deploy 任务(我不记得听说过,所以我认为它可能不存在),但您应该能够创建如果没有,您自己的 Maven 任务将执行它。或者不要使用 Maven 来做,只使用 Pact CLI 工具hub.docker.com/r/pactfoundation/pact-cli
    猜你喜欢
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多