问题标签 [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.

0 投票
1 回答
1192 浏览

pact - How to use Pact Matcher for values other than 'Strings'

In pact-jvm (groovy on consumer side and gradle on the provider side), I'm trying to use Pact matchers like below:

Will Pact matcher regex work only for Strings ? For values other than strings, do I need to use Pact term ?

If the answer is 'yes' for the above two questions. Please explain me how to use Pact term in groovy style.

I have tried using Pact term like below:

But getting groovy - MethodMissingException. My complete response body for reference:

0 投票
1 回答
1024 浏览

pact - Pact Matcher - 如何对数组值数组使用“每个喜欢”

我在 Pact Matcher 中遇到了以下示例:

它用于将“权限”表示为数组的值。

但我正在尝试将协定匹配器用于数组数组。假设,如果我的响应正文如下:

“每个喜欢”都适用于这种情况吗?如果是,请举例说明。

0 投票
1 回答
646 浏览

pact - PACT-JS 新手的起点

我在 youtube 上的一些视频中找到了 PACT,看起来很棒并且很感兴趣为我的团队启动 POC。我已经阅读了以前的问题并尝试遵循 Pact-JS 中的示例,但仍然对非常基本的东西有些困惑,所以请原谅我的菜鸟问题。

1.我需要将哪个repo称为官方repo?

我认为Pact-foundation 组织下的链接是官方的,但文档中的某些链接通常指向不同的链接。

2. 对于 PACT 的所有工作部分,我需要什么以及来自哪个 repo?

  • 消费者/提供者。
    首先,我认为我需要 PACT_JS。

    github.com/pact-foundation/pact-js

  • 模拟服务。
    对于模拟服务,我是否需要 pact-node 或 pact-mock-service-npm,或者两者都需要?

    github.com/pact-foundation/pact-node
    github.com/pact-foundation/pact-mock-service-npm

  • 经纪人
    如果我想使用经纪人,那么这将需要。

    github.com/pact-foundation/pact_broker

我认为这三个是我需要使用的部分。这是对的吗?

3. 如果涉及多个团队,1 台共享模拟服务器是否需要/帮助真的很重要吗?我不清楚独立模拟服务器的好处。

0 投票
2 回答
2299 浏览

java - PACT:如何使用 Provider 数据库中存在的有效数据获得动态路径

我有一个 restFul API http://localhost:8080/books/ {id} 它返回具有特定 ID 的书。

前任:

获取http://localhost:8080/books/1

将返回

{ "id" : 1, "pages" : 20, "price" : 100 }

获取http://localhost:8080/books/2

将返回

{ “id”:2,“pages”:30,“price”:120 }

我已经使用正则表达式代替 {id} 编写了我的消费者期望并生成了 PACT。

现在提供程序中没有数据。(数据库中没有图书信息)。当我在提供商端运行协议验证时,它会失败,因为它无法通过点击实际服务来交叉检查合同来获取任何信息。

是否可以在没有数据存在于提供商数据库中的情况下验证合同?或者有什么解决方法吗?

如果我们将提供者部署到多个环境中,提供者的数据库也会发生变化,如何处理?

感谢帮助。谢谢。

0 投票
1 回答
1565 浏览

c# - Pact.net:获取发送到模拟服务的请求

我正在开发人员解决方案中为一项服务编写测试,并且我正在使用 pact 模拟服务模拟其他第三方服务。我需要验证发送到此模拟服务的请求。所以我需要获取实际发送的有效载荷。(实际存储在日志文件中的那个以“收到的请求”开头)

我将非常感谢您的帮助

0 投票
2 回答
548 浏览

provider - Pact >> Pact Provider host 不是 localhost

当提供者主机是 localhost 时,我正在使用 pact java > Pact verify 工作。如何提供其他一些主机详细信息?当我指定这样的提供者时,


我收到回复


如何提供其他一些主机详细信息?

0 投票
2 回答
257 浏览

javascript - Pact-js e2e 示例实现[Issue:Cannot GET /states] MAC OS

需要帮助解决上述 http://localhost:8081/states 的“无法获取 /states”问题。我已经浏览了 https://groups.google.com/forum/#!topic/pact-support/zGj8o6snf5c,这很有帮助,但没有找到答案。

GitHub 存储库 URL:https ://github.com/pactfoundation/pactjs/tree/master/examples/e2e

我已经在我的机器 OS X EI Captain[10.11] 上设置了 Pact-js e2e 示例。

  1. 运行消费者测试./node_modules/.bin/mocha test/consumer.spec.js 得到成功的输出。

  1. 发布测试node test/publish.js。得到了成功的输出。

  1. 运行消费者和提供者 api npm run api。得到成功的输出

  1. 运行提供程序测试./node_modules/.bin/mocha test/provider.spec.js。在这里得到错误

你能帮我解决第 4 步的错误吗?第 3 步的另一个问题是,当我单击输出中的链接时,它不会要求输入用户名和密码。

谢谢,
萨克希

0 投票
1 回答
2185 浏览

mocha.js - 所有 pact-js 测试都失败并出现相同的错误

我第一次使用 Pact.js 进行微服务测试。我尝试遵循以下示例:

  1. https://github.com/lucasmajerowicz/pact-node-example

  2. https://github.com/pact-foundation/pact-js/tree/master/examples/e2e

  3. https://github.com/pact-foundation/pact-js/tree/master/examples/mocha

在示例 3 中;我导航到测试文件夹并运行mocha index.spec.js 但它会引发以下错误:

它按预期创建logandpact文件夹,但它既不在pact.jsonpact 文件夹中创建文件,也不在 log 文件夹中记录文件。

更让我感到困惑的是,我在示例 1 和示例 2 中得到了完全相同的错误。这告诉我我有一个问题,但我不知道它是什么。有人可以帮我调试问题吗?

0 投票
1 回答
335 浏览

swift - 带有 PACT 的 XCUITest 不返回模拟网络响应

我正在尝试使用PACT Consumer Swift运行 XCUITest ,无论我如何尝试配置它,都会发出一个真实的网络请求,而不是接收带有 200 状态代码和 X-Auth-Token 的模拟响应。我错过了什么?

这是 UI 测试用例:

这是实际的登录逻辑:

0 投票
1 回答
66 浏览

pact - 谁是 POST 场景中的消费者?

我在 Pact 上读到过,消费者是发起请求的人。我有一个服务(我们称之为 A),用于绘制图片,然后将其提交(通过 POST)到一个服务(我们称之为 B),该服务将处理这些输入并生成相册。

我的问题是:如果服务 B 是知道应该接收哪种类型的输入和格式以创建专辑的专家,那么服务 A 怎么会是消费者,因此将是编写合同的人呢?不应该是服务 B 指定应该接收什么样的数据?