问题标签 [pact-net]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 验证 PactNet 中的类型
我正在测试微服务,并且正在使用PactNet创建和验证协议。我发现测试太脆弱了,因为验证者正在检查确切的值而不是验证类型。
例如,我正在针对 GitHub API 进行测试,并且测试有效。如果添加了新的 Repo,则该public_repos
值会增加 1,并且测试失败。
有人用它来检查类型而不是具体值吗?
这是验证码:
这是 PACT 文件。
pact - 我应该测试合同中的所有枚举值吗?
我对是否应该考虑某种类型的测试功能或合同有疑问。
假设我有一个类似 /getToolType 的 API,它接受 {object" "myObject"} 作为输入,并以 {type: "[az]+"} 形式返回类型
客户端和服务器之间达成一致,返回的类型将匹配一组字符串,比如 [hammer|knife|screwdriver],因此消费者决定在枚举中解析它们,当返回的类型未知时使用备用值。
消费者是否应该为每种类型(锤子、刀子、螺丝刀)包括一个测试用例,以确保生产者仍然遵守始终返回的协议,例如,当使用锤子对象调用 /getToolType 时,小写字符串“锤子” ? 或者你会认为这样的测试用例是有用的吗?为什么?
c# - PACT .NET 消费者测试:灵活长度数组
我正在使用 pactNet 来测试一个 API,它应该返回一个灵活长度的数组。
如果我调用“myApi/items/”,它应该返回消费者不知道确切大小的项目列表。所以答案应该是这样的:
或这个:
如何为此交互创建合同?
在文档中是 Ruby 中的一个示例,但我在 C# 中找不到等价物。
我正在使用 pactNet 2.1.1 版。
编辑:这是一个示例,它应该是什么样子。我想知道的是如何声明正文应包含具有灵活长度的项目数组。
testing - 我应该使用基于协议的存根服务还是 Wiremock.net?
我正在研究dotnetcore 世界中的微服务组件测试工具。
除了组件测试,我还计划使用 Pact.net进行合同测试。
在这里阅读Pact.net:https://github.com/pact-foundation/pact-net
我找到了指向: https ://github.com/seek-oss/seek.automation.stub 的链接, 它说它是一个基于 Pact 的 .NET 存根库。这很有意义,因为我将使用 Pact 并且我的 Pact 可用于存根。
但在此之前,我正在考虑 WireMock.net https://github.com/WireMock-Net/WireMock.Net。有没有人尝试过每一个并分享他们的反馈,我应该选择哪一个?与此 Seek Automation 存根相比,WireMock 在社区中似乎非常受欢迎。
提前感谢您的帮助!
c# - 使用 Pact.Net 和 .Net Core 设置 Provider 基本状态的最佳方法是什么?
在 Pact 的 (Ruby) 文档中,可以在提供者状态中添加提供者基本状态。我正在使用 Pact.Net 并使用 ProviderStateMiddleware,但我无法弄清楚如何使用此实现设置基本状态。是否有可能做到这一点和/或有没有人有任何设置的经验?提前致谢!
pact - PactNet Provider 测试失败,因为运行测试时出现 404
我有一个消费者已经成功创建了一个契约文件:
问题是对提供者的测试。它得到一个 404
/CoolPersonService/persons/e674a2d0-57e6-471d-96dd-a91c0077283a
但是如果我使用 HTTP 客户端向该路由发送 GET,我会收到 200 响应并返回预期的数据。
这是测试运行的输出:
这是提供者的测试方法:
pact - 如何运行 PACT Broker can-i-deploy 脚本?
我已经下载了 zip 文件https://github.com/pact-foundation/pact_broker-client#can-i-deploy 并在我的 bash 中运行以下命令但我收到错误,我做错了什么
我的计划是从 C# 代码运行这个 can-i-deploy 但在此之前我正在运行 curl 但面临问题,感谢 示例脚本的任何帮助:
错误:卷曲:选项--参与者:未知
regex - 将同时检查正则表达式和空值的协定匹配器
我有以下带有以下交互的协议文件
有机会fixtureNumber
可以为空。请让我知道一个匹配器,它既可以检查[0-9]{6}-[0-9]{2}-[a-zA-Z]{2}-[0-9]{2}-[0-9]{2}
也可以检查空值。