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

当使用者api调用多个提供者api时,pact是否支持使用者契约测试

华欣怡
2023-03-14

共有1个答案

郎项禹
2023-03-14

回答我上面的问题。发现我们可以用Builder添加多个协议模拟。示例

消费者api调用两个生产者方法/user/1和/user/account/1,我们可以如下定义pact mock。

  @Pact(consumer = "CONSUMER")
    fun getUser(builder: PactDslWithProvider): RequestResponsePact {
        return builder
            .uponReceiving("get user basic info request")
            .path("/user/1")
            .......  // define response status code and body as required
            .uponReceiving("get user account info request")
            .path("/user/account/1")
            ......  // define response status code and body as required
            .toPact()
     }

消费者契约测试可以如下所示

    @Test
    @PactTestFor(pactMethod = "getUser")
    fun `should respond with user info`() {
       // consumer api call
        val result = restTemplate.getForEntity("/customers/1",String::class.java) 
        val expected = ... // have expected here
        assertEquals(HttpStatus.OK, result.statusCode)
        assertEquals(expected, result.body, false)
    }
 类似资料:
  • 我们有两个服务,其中一个是另一个的消费者。使用者是用Java编写的,提供者是用JavaScript编写的。 在消费者端,我们使用pact-jvm定义了一个consumer-contract-test,并且能够生成一个合同。在此契约中,响应的定义如下: 用于pact验证的代码 有什么办法解决这个问题吗?是否可能在消费者端使用带有内容键的类似消息结构?或者我们可以在提供方用其他方法解决它吗

  • 我正在开发一个带有一些公共API的静态C++库。我必须为库提供的API实现使用者驱动的契约。但在我的情况下,我必须向消费者提供他们同意的合同。 有没有任何方法可以在文件中定义合同,并且可以测试所有的API。这样做的主要目的是隔离测试。 请您分享一些输入来实现文件中定义的合同,并为这些合同编写一个测试程序。

  • The Ethereum eco-system provides many methods of interacting with the blockchain. In ethers.js we expose a Provider API that covers the breadth of operations, however often it is useful to inter-opera

  • 我正在使用Pact进行消费者驱动的合同测试。在我的usecase中,我的消费者“some-market-service-consumer”正在使用提供者“market-service”。在某个市场服务消费者处“产生”的合同如下所示: 在provider-site上,我正在使用Pact-Provider-Verifier-Docker'。以下是我的测试结果: 看起来,好像测试工作良好-“电话”被测试

  • 我正在做一个项目,在这个项目中,用户可以使用电话号码、谷歌或Github登录。我使用Firebase进行身份验证。我目前正在使用Cypress添加集成测试。我的问题是我无法正确测试用户是否可以链接或取消链接提供商。要链接提供者,我使用firebase方法 起初,我试图模拟一次按钮点击。但这不起作用,因为Cypress不允许在一个测试中访问多个域 我的下一次尝试是使用方法。我从开发者工具中获取coo

  • 我对SAML比较陌生,并且偶然发现了OneLogin Python SAML库。我能够让它启动并运行,我的web应用程序是服务提供商(SP),OneLogin是身份提供商(Idp)。 我希望能够添加对其他身份提供者的支持。然而,我发现python saml库正在使用设置。json获取Idp信息。我已经研究了他们的Github项目中的以下问题,但无法获得可行的解决方案:[1]https://gith