2

由于我们的团队(即我自己和其他两个开发人员)在过去一周左右的 PACT 上飙升,其中一个令人担忧的领域是无法将参数与提供者状态相关联。由于缺少此关键功能(计划在第 3 版发布),我们可能不会从我们各自的服务子团队中获得支持。

@MattFellows - 关于 Go 版本 3 何时可用的任何预测?我们有没有机会更早地获得这个功能?

允许带有参数的多个提供程序状态 在以前的版本中,提供程序状态被定义为一个描述性字符串。如果不将值编码到描述中,就无​​法推断状态所需的数据。

{
  "providerState": "an alligator with the given name Mary exists and the user Fred is logged in"
}
The change would be:

{
  "providerStates": [
    {
      "name": "an alligator with the given name exists",
      "params": {"name" : "Mary"}
    }, {
      "name": "the user is logged in",
      "params" : { "username" : "Fred"}
    }
  ]
}
4

1 回答 1

2

你是对的,它直到版本 3 才可用。

但是,您仍然可以实现您所追求的目标。状态本身只是Consumer处理Provider上的某些数据集的句柄——可以是一对一或一对多的映射——这完全取决于你。

通常,Provider在验证期间会收到状态通知,然后它将设置一个测试数据夹具(通常为数据库播种),该夹具根据该引用设置整个系统的“状态”,从而允许消费者测试运行。

虽然传递参数和多个状态的能力很好,但它有点高级功能,我非常怀疑这将是你作为一个团队遇到的第一个问题。我从来不需要自己使用它们。

对于一个粗略但有效的示例,请查看项目示例文件夹中的gin代码。

于 2016-11-09T20:44:51.660 回答