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

C++API的使用者驱动契约测试

胡云瀚
2023-03-14

我正在开发一个带有一些公共API的静态C++库。我必须为库提供的API实现使用者驱动的契约。但在我的情况下,我必须向消费者提供他们同意的合同。

有没有任何方法可以在文件中定义合同,并且可以测试所有的API。这样做的主要目的是隔离测试。

请您分享一些输入来实现文件中定义的合同,并为这些合同编写一个测试程序。

共有1个答案

燕成双
2023-03-14

我必须为库提供的API实现使用者驱动的契约。但在我的情况下,我必须向消费者提供他们同意的合同。

那两种说法互不相容。将合同提供给消费者的本质不可能是由消费者驱动的。

在任何情况下,如果您希望确保合同由双方生成并验证,Pact目前不支持C++-但这并不意味着您不能使用它。

  • 使用者-https://github.com/pact-foundation/pact-mock_service/blob/master/script/example.sh
  • 提供程序-https://docs.pact.io/implementation_guides/other_language
  • Pact不能为您工作时的DIY合同-https://github.com/dius/diy-contract-example

如果您正在执行提供者驱动的契约,并且不想知道使用者本身是否兼容,那么您可以考虑使用像Swagger(OpenAPI规范)这样的工具来定义API,然后使用像Dredd这样的工具来查看它是否匹配。

 类似资料:
  • 本文向大家介绍消费者驱动的契约(CDC)是什么?相关面试题,主要包含被问及消费者驱动的契约(CDC)是什么?时的应答技巧和注意事项,需要的朋友参考一下 这基本上是用于开发微服务的模式,以便它们可以被外部系统使用。当我们处理微服务时,有一个特定的生产者者构建它,并且有一个或多个使用微服务的消费者。 通常,生产者程序在 XML 文档中指定接口。但在消费者驱动的契约中,每个服务的消费者都传达了生产者期望

  • 我们有两个服务,其中一个是另一个的消费者。使用者是用Java编写的,提供者是用JavaScript编写的。 在消费者端,我们使用pact-jvm定义了一个consumer-contract-test,并且能够生成一个合同。在此契约中,响应的定义如下: 用于pact验证的代码 有什么办法解决这个问题吗?是否可能在消费者端使用带有内容键的类似消息结构?或者我们可以在提供方用其他方法解决它吗

  • 我正在与Maven一起使用Pact JVM/Java(Version3)。中没有项目版本控制--它只是版本。在Pact Maven插件中配置的与Maven project version-相同。 我应该玩和吗?我是否应该升级到Pact版本4并使用消费者版本选择器?

  • 在自由软件项目中的契约需要小心处理。理想状况下,你希望一个承包者的工作被社区接受并打包进入公共发布版本。在理论上,谁是承包者并不重要,只要他的作品足够好并满足项目的指导方针。理论和实践一般也是一致的:一个通过贡献好的补丁展示自己的完全陌生人通常能将代码置入软件当中。问题是,一个完全的陌生人很难为非琐碎的改进或新的特性贡献好的补丁;一个人必须首先和项目的其他人进行讨论。讨论的时间不能精确预测。如果承