【发布时间】:2016-11-24 03:13:15
【问题描述】:
我正在为我的合同测试套件使用Pact gem(并且喜欢它!)。我正在测试的 API 服务需要所有请求的授权令牌。
我知道如何为我的用户生成 API 令牌,但我不知道在 Pact 工作流程中放置令牌的位置。我在 Pact 文档和 repo 中搜索了示例,但没有任何运气。
我尝试在消费者规范中发送 POST 以生成令牌,但 Pact 模拟服务器不知道如何处理请求并输出错误(如我所料)。
我找到了this example,它看起来很有希望,特别是能够使用requestFilter 和addHeader 方法为所有请求分配预定义的标头。
如何在 Pact gem 中使用这样的请求过滤器?
如果这不是当前的功能,我有什么替代方案?
更新:
J_A_X's answer 非常适合使用模拟服务器创建协议,但它不能满足 API 服务提供商对有效身份验证令牌的期望。更具体地说,我需要在运行 pact:verify 时将有效的身份验证令牌动态插入到协议中。所以,更近一步,但仍需要弄清楚后半部分。
Matthew's answer 包含关于后半部分(pact:verify)的两种可能解决方案的提示。我犹豫是否要引入另一个依赖项,所以我很想让 ProxyApp 类示例正常工作。我不明白我到底会传递给 ProxyApp.new() 什么。有什么建议吗?
【问题讨论】: