0

我在 Spring Cloud Contract 中编写了场景。在第一次请求时,我的应用程序返回令牌作为响应,第二个请求应包含此令牌。是否有可能将值从第一个响应传递到第二个请求?

现在我在测试中使用另一个令牌生成器实现,它返回预定义的令牌,但我想删除它并使用真正的令牌生成器。

场景示例:

1_getToken.groovy

org.springframework.cloud.contract.spec.Contract.make {
    description = 'receive token'
    request {
        method 'POST'
        url '/getToken'
        body("""
            {
            }
         """)
        headers {
            header('Content-Type', 'application/json')
        }
    }
    response {
        status 200
        body("""
            {
                "token":"123"
            }
         """)
    }
}

2_addSmth.groovy

org.springframework.cloud.contract.spec.Contract.make {
    description = 'add somethingh'
    request {
        method 'POST'
        url '/addSmth'
        body("""
            {
                "token":"123",
                "value":"something"
            }
         """)
        headers {
            header('Content-Type', 'application/json')
        }
    }
    response {
        status 200
        body("""
            {
            }
         """)
    }
}

即我想将参数“token”从第一个响应传递到第二个请求。可能吗?

4

1 回答 1

1

我不认为在这一点上是可能的。你应该硬编码它。如果您需要非常具体的值,那么您的合同测试很可能过于复杂。甚至很可能它们不再是合同测试,但您尝试使用合同来验证业务行为

于 2017-11-28T12:03:03.237 回答