Проверьте, является ли массив подмножеством другого массива, и перечислите все различия в конце с ошибкой подтверждения, используя js / chai / mocha - PullRequest
0 голосов
/ 28 ноября 2018

Рассмотрим Ожидаемые данные - это массив подмножеств * Я бы хотел проверить внутри actualData массив .

Я попробовал следующее, но это не сработало при первой ошибке.Я хотел бы, чтобы все различия между фактическими и ожидаемыми массивами были указаны в конце выполнения с ошибкой подтверждения.

expectedData.forEach((item) => {
  assert.deepInclude(actualData, item, 'actual data did not include item')
})

Пример данных:

let expectedData = [
  {
      "val": -10.12,
      "key": "ABC"
  },
  {
      "val": 10.12,
      "key": "DEF"
  },
]


let actualData = [
  {
      "val": -10.12,
      "key": "ABC"
  },
  {
      "val": 10.12,
      "key": "DEF"
  },
  {
      "val": 9.8,
      "key": "LMN"
  },
]

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Не удалось найти встроенный метод.На данный момент используется цикл For для перебора каждого элемента для сравнения и сохранения несоответствий в выходной массив.

0 голосов
/ 28 ноября 2018

Я не уверен, почему я пропустил это, когда впервые посмотрел, но код, который вы разместили, имеет (много?) Синтаксические ошибки.Попробуйте это:

let expectedData = [
  {
      "val": -10.1,
      "key": "ABC"
  },
  {
      "val": 10.12,
      "key": "DE"
      },
  {
      "val": 9.8,
      "key": "LMN"
  },
]


let actualData = [
  {
      "val": -10.12,
      "key": "ABC"
  },
  {
      "val": 10.12,
      "key": "DEF"
  },
  {
      "val": 9.8,
      "key": "LMN"
  },
  {
      "val": 1,
      "key": "XYZ"
   },
]

expectedData.forEach((item) => {
  assert.deepInclude(actualData, item, 'actual data did not include item')
})
...