Невозможно утверждать все элементы в одном массиве с массивом, который не имеет имени идентификатора - PullRequest
1 голос
/ 23 января 2020

ответ:

[
  {
    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, тогда ключ fuel Cost должен равняться 1,1

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

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

^^ Но это только утверждение ТОЛЬКО элемента верхнего уровня.

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

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

^^ Но это выдает ошибку операнда.

У меня есть около 260 элементов в одном массиве без имени идентификатора, и мне нужно указать для `` `fuelType ==" PETROL "& fuelCost == 1.1 во всех 260 элементов

1 Ответ

1 голос
/ 23 января 2020

Эти две строки отлично работают:

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

Вы использовали тройное равенство, что неправильно. Прочитайте документы: https://github.com/intuit/karate#match - каждый

...