【问题标题】:how to parse the response at pact provider verfication如何在协议提供者验证时解析响应
【发布时间】:2021-04-14 09:14:27
【问题描述】:

我的场景是消费者定义了两个交互,interation1 与 state1,interation2 与 state2。运行interation1后,JSON响应中会有一个id,这个id必须作为interation2的查询参数。在提供者方面,有没有办法从 interation1 的响应中提取该 id?顺便说一句,我正在使用协议提供者 junit。

【问题讨论】:

    标签: java pact pact-jvm pact-java


    【解决方案1】:

    你以错误的方式思考事情。

    Provider states 旨在防止这种形式的耦合。交互 1 应该完全独立于交互 2。

    来自documentation

    依赖于先前测试结果的测试很脆弱,会让你回到集成测试地狱,这是你试图通过使用协议来逃避的讨厌的地方。

    您必须控制提供者测试上下文才能使 Pact 测试正常工作。

    在您的情况下,对于状态 2,您可能有以下描述:

    a user with ID 1 exists
    

    在测试特定交互之前,Pact 将provide you 有机会设置该状态,但是应该针对您的用例进行设置 - 例如您的代码可以使用该 ID 在数据库(或内存中的)中创建资源。

    @State("a user with ID 1 exists") // Must match the state description in the pact file
    public void setupUser1() {
      // Do what you need to for that user to exist 
    }
    

    这样,可以在不知道交互 1 存在的情况下执行交互 2。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-11
      • 1970-01-01
      • 2021-01-29
      • 1970-01-01
      • 1970-01-01
      • 2020-06-09
      • 2021-11-22
      • 2015-11-10
      相关资源
      最近更新 更多