Тестирование, если массив не содержит значения - PullRequest
0 голосов
/ 26 января 2019

Возможно ли использование Jest для проверки того, что userId: 123 не должно существовать.
Например:

[
  { UserId: 112, Name: "Tom" },
  { UserId: 314, Name: "Paul" },
  { UserId: 515, Name: "Bill" }
]

Тест должен пройти, если нет объекта с UserId: 123.

Ответы [ 2 ]

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

Простой цикл forEach справился бы с задачей.

users = [
{ UserId: 112, Name: "Tom" },
{ UserId: 314, Name: "Paul" },
{ UserId: 515, Name: "Bill" }
]

function checkUserId(id) {
users.forEach(function(user) {
    if user.UserId === id {
    return False
    }
});
return True

}

checkUserId(123) //returns True
checkUserId(112) //returns False

РЕДАКТИРОВАТЬ

Извините, если это не поможет.Я не заметил шутливую часть вашего вопроса, пока не опубликовал это.

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

Правильный способ сделать это - проверить, не равен ли массив массиву, который будет содержать объект, с которым вы пытаетесь проверить. В приведенном ниже примере показано, как этого добиться, используя слои arrayContaining и objectContaining.

.
it("[PASS] - Check to see if the array does not contain John Smith", () => {
  expect([
    {
      user: 123,
      name: "Amelia Dawn"
    }
  ]).not.toEqual(
    expect.arrayContaining([
      expect.objectContaining({
        user: 5,
        name: "John Smith"
      })
    ])
  );
});

it("[FAILS] - Check to see if the array does not contain John Smith", () => {
  expect([
    {
      user: 5,
      name: "John Smith"
    },
    {
      user: 123,
      name: "Amelia Dawn"
    }
  ]).not.toEqual(
    expect.arrayContaining([
      expect.objectContaining({
        user: 5,
        name: "John Smith"
      })
    ])
  );
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...