问题标签 [pact]
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.
java - Pact JVM Junit 消费者编译错误
我正在使用 JVm-Junit 库为 Pact 编写消费者端代码。然而在这一行: MockProviderConfig config = MockProviderConfig.createDefault(); 我收到错误“未为 MockProviderConfig 类型定义 createDefault()”
我该怎么做才能继续。
我的 POM 文件如下所示: http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 Consumer_0805 Consumer_080517 0.0.1-SNAPSHOT war
测试代码:
java - 如果所有消费者都以相同的方式使用相同的 API,为什么我们应该为每个消费者提供 1 个 Pact 文件?
我正在尝试在我们公司引入 Pact 框架,提出的问题之一如下:
场景:这个 xyz API 被 40 个消费者调用,每个消费者当前需要相同的功能。那么我们为什么要维护 40 个 Pact Files 而不是仅仅维护一个文件呢?
考虑到协议文件的维护,有没有比为每个消费者拥有一份协议文件更好的方法?
java - JVM @PactUrl 是否提供基本的身份验证选项?
我想从一个带有基本身份验证的 url 消费一个契约合同文件。JVM @PactUrl 是否提供基本的身份验证选项?如果没有,有没有办法在使用“@pacturl”时在其他地方提供它?
requirejs - 使用 requirejs 的 Karma/jasmine/pact-js 示例
我正在研究业力/茉莉花示例。它按原样工作正常。我需要让它与requirejs一起工作。当我引入 requirejs 并将客户端和客户端规范类转换为 AMD 时,我开始收到此错误:
PhantomJS 2.1.1 (Windows 7 0.0.0) 客户端 sayHello 应该说 hello FAILED TypeError: undefined is not a constructor (evaluating 'Pact') in js/client-spec.js (line 11) js/client-spec.js: 11:28
要查看问题,您可以查看我的示例项目。要运行它:
- 在上面的示例项目中提取 zip 文件
- 从 PactTest 目录,运行: npm install
- 完成后,运行: npm run test:client
干杯,迈克
pact - closeArray 的 PACT-JVM 问题
所以我才开始使用 JVM-PACT。
我正在尝试创建这个 JSON
尝试这样做:但是在尝试调用 closeArray() 时它不断崩溃
我知道它说“不能在对象上调用 closeArray”,但它肯定是在尝试关闭“eachLike”
任何建议都会非常有帮助
pact - 验证协议之前的编码/加密正文
我需要集成的服务器返回其编码为 JWT 的答案。更糟糕的是,响应正文实际上是一个 json,格式如下:
{d: token} with token = JWT.encode({id: 123, field: "John", etc.})
我想对解码令牌的内容使用协议验证。我知道我可以轻松地签订协议来验证我是否返回了 {d: string},但我无法对字符串进行完全匹配(因为 JWT 包含一些不同的 ID)。我想要的是以下内容,它假定添加了新的 Pact.JWT 功能。
my_provider.
upon_receiving('my request')
.with(method: :post,
path: '/order',
headers: {'Content-Type' => 'application/json'}
).will_respond_with(
status: 200,
headers: {'Content-Type' => 'application/json; charset=utf-8'},
body: {
d: Pact::JWT( {
id: Pact.like(123),
field: Pact.term(generate: "John", matcher: /J.*/
},signing_key,algo
)
})
如果没有添加这个 Pact::JWT,有没有办法实现这种结果?
我已经在使用协议代理来运行我的验证。我知道您可以在发送请求进行验证之前修改请求(如何针对需要身份验证令牌的 API 验证协议?)。从代理服务器收到请求后,您可以修改请求吗?
如果是这种情况,我可以计划以下工作:
- 我的实际代码中的一个开关,有时期望答案被解码而不是在 JWT 中
- 在关闭开关的情况下运行我的测试一次(正常的代码行为,模拟返回 JWT 编码的数据。
- 在关闭开关的情况下再次运行我的测试(代码期望数据已经解码,模拟返回解码数据。)
- 使用第二次运行的合同 json
- 挂钩到 proxy:verify 任务以即时解码 JWT,并使用现有的协议机制进行验证。(这一步我不知道怎么做)。
我的代码是红宝石。我无权访问提供商。
任何建议表示赞赏!谢谢
java - Using Pact JUnit Rule versus Using the Pact DSL directly?
I want to understand why is the below scenario occurring? Issue : The Junit test fails with HttpConnect exception if I use Pact Junit Rule. But the same test passes and pact file is generated if I use the Pact DSL Directly. Can someone enlighten me why and how to get going with the Pact Junit Rule?
Code using Pact Junit Rule :(This fails with HttpHostConnectException)
Code using Pact DSL Directly(This Junit passes and generate Pact file successfully)
pact - 当每个项目的数组内容不同时使用 Pact.eachLike()
嗨,我有一个使用 Pact NPM https://www.npmjs.com/package/pact生成的消费者测试
我使用以下代码生成一个 pact.json:
它生成以下 testconsumer-testprovider.json 文件:
但是,当我们针对以下提供的输出进行测试时,我们会收到 geoCoords 错误,因为它是一个意外的键/值:
那么是否存在允许数组中出现意外键/值的方法,因为我们只测试所需的键/值,并且我们不希望将来在将新值添加到我们的提供程序时让协议测试失败。