首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++ API的消费者驱动的合同测试

C++ API的消费者驱动的合同测试
EN

Stack Overflow用户
提问于 2019-04-24 06:23:54
回答 1查看 441关注 0票数 2

我正在开发一个具有一些公共API的静态C++库。我必须为这个库提供的API实现消费者驱动的契约。但在我的情况下,我必须将合同提供给消费者,他们将达成一致。

实现基于契约的测试的灵感来自于PACT (https://docs.pact.io/)。PACT中的契约以JSON文件的形式存在,主要基于REST和http响应。

如果我必须为C++ API实现基于合同的测试。那么最好的方法是什么呢?我可以看到boost有契约式设计,但它更像是断言,但在PACT这样的文件中没有定义契约。(https://www.boost.org/doc/libs/develop/libs/contract/doc/html/index.html)

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

您是否可以分享一些输入,以实现在文件中定义的合同,并为这些合同编写测试程序。

EN

回答 1

Stack Overflow用户

发布于 2019-04-24 19:53:42

我必须为这个库提供的API实现消费者驱动的契约。但在我的情况下,我必须将合同提供给消费者,他们将达成一致。

这两个语句彼此不兼容。从本质上讲,向消费者提供合同不能由消费者驱动。

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

请参阅这些链接,以便使用Pact工具测试消费者和提供者端:

Pact Contracts - https://github.com/pact-foundation/pact-mock_service/blob/master/script/example.sh

  • DIY Contracts in case

如果你正在做提供者驱动的契约,并且对消费者本身是否兼容不感兴趣,你可以考虑使用像Swagger ( API规范)这样的东西来定义OpenAPI,然后使用像Dredd这样的工具来查看它是否匹配。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55820196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档