将对象数据与契约匹配器打字稿中的多个示例值进行比较

问题描述 投票:0回答:0

我在打字稿中使用 pact V3 来验证与 API 的合同。响应示例匹配器如下:

const userExample = {
  email: string("[email protected]"),
  id: number(123)
}

API 中的实际

response.data
看起来像:

{
  "email": "[email protected]",
  "id": 123
}

当我执行测试时:

expect(response.data).toStrictEqual(userExample)

我知道它是将

response.data
与 Matcher 对象进行比较,而不是实际的示例值:

contract:test:     - Expected  - 8
contract:test:     + Received  + 2
contract:test: 
contract:test:       Object {
contract:test:     -   "email": Object {
contract:test:     -     "pact:matcher:type": "type",
contract:test:     -     "value": "[email protected]",
contract:test:     -   },
contract:test:     -   "id": Object {
contract:test:     -     "pact:matcher:type": "number",
contract:test:     -     "value": 123,
contract:test:     -   },
contract:test:     +   "email": "[email protected]",
contract:test:     +   "id": 123,
contract:test:       }

我可以通过以下方式解决这个问题:

expect(response.data.email).toStrictEqual(userExample.email.value)
expect(response.data.id).toStrictEqual(userExample.id.value)

但是我想弄清楚是否有一种方法可以比较整个响应而不必在单独的

.value
函数行中为
expect
响应的每个潜在值指定
userExample

typescript jestjs pact
© www.soinside.com 2019 - 2024. All rights reserved.