Как отстаивать 2 ключа во многих объектах - PullRequest
2 голосов
/ 22 января 2020

response =

[
  {
    id: "1",
    modelId: "301",
    modelName: "x",
    trimId: "301",
    trimName: "up!",
    derivativeName: "xx",
    fuelType: "PETROL",
    tco: {
      price: {
        tco: null,
        retail: 12,
        offer: null,
        subsidy: null,
        residual: null
      },
      milesPerYear: 10000,
      mpg: 51.5,
      fuelCost: 1.1,
      milesPerKW: 0,
      monthsOfOwnership: 48,
      energyCost: 12,
      tax: 42,
      comparable: false
    }
  },
  {
    id: "1239",
    modelId: "301",
    modelName: "up!",
    trimId: "301",
    trimName: "x",
    derivativeName: "xx",
    fuelType: "PETROL",
    tco: {
      price: {
        tco: null,
        retail: 1,
        offer: null,
        subsidy: null,
        residual: null
      },
      milesPerYear: 10000,
      mpg: 53.2,
      fuelCost: 1.1,
      milesPerKW: 0,
      monthsOfOwnership: 48,
      energyCost: 12,
      tax: 4,
      comparable: false
    }
  }
]

Я пытался решить это, но не могу найти лучший способ сделать это.

Я пытаюсь проверить, когда ключ fuelType = PETROL, тогда ключ fuelCost должен равняться 1,1

В ответе много объектов, и я хочу назначить 2 ключа (fuelType и Fuelcost) в каждом объекте.

Я попробовал следующее:

Given path 'url'
    When method GET
    Then match each response[*] contains {[*].fuelType:PETROL , [*].tco.fuelCost:1.1}

Пожалуйста, помогите спасибо

1 Ответ

2 голосов
/ 22 января 2020

Попробуйте, адаптируйте при необходимости:

* def isValid = function(x){ return if x.fuelType == 'PETROL' && x.fuelCost == 1.1 }
* match each response == '#? isValid(_)'
...