如何在Pact上处理多态端点?

时间:2019-05-06 21:00:32

标签: pact

我有一个应用程序,可以在其中搜索BooksMovies。这两个实体具有不同的属性,因此它们的JSON结构也不同。

我还有一个GET /favorites端点,该端点应同时返回BooksMovies

GET /favorites

{
  "favorites": [
    {
      "type": "book",
      "title": "Foo",
      "author": "John"
    },
    { 
      "type": "movie",
      "name": "Bar",
      "producers": [
        {
          "firstName": "Mary"
        }
      ]
    }
  ]
}

我在这种情况下搜索了文档,但找不到任何东西。如何为该用例写一份契约合同?

1 个答案:

答案 0 :(得分:1)

为此,我将编写两个单独的测试用例,并使用提供者状态来区分这两个有效负载。

例如:

  1. 有书的时候
  2. 有电影的时候

或者类似的东西。有关此背景,请参见[1]。

[1] https://docs.pact.io/faq#why-is-there-no-support-for-specifying-optional-attributes