Убедитесь, что строка содержит одну из подстрок из массива с Jest - PullRequest
1 голос
/ 11 марта 2019
expectedStrings = [
'abc',
'def',
'ghi'
]
stringToCheck = 'zyxabc'

Я хочу проверить, содержит ли stringToCheck одну из строк ожидаемых строк с помощью Jest.Я видел методы stringContained и arrayContained, но я не уверен, как мне составить, чтобы тест работал.

Я хотел бы использовать что-то близкое к этому примеру:

describe('stringMatching in arrayContaining', () => {
  const expected = [
    expect.stringMatching(/^Alic/),
    expect.stringMatching(/^[BR]ob/),
  ];
  it('matches even if received contains additional elements', () => {
    expect(['Alicia', 'Roberto', 'Evelina']).toEqual(
      expect.arrayContaining(expected),
    );
  });
  it('does not match if received does not contain expected elements', () => {
    expect(['Roberto', 'Evelina']).not.toEqual(
      expect.arrayContaining(expected),
    );
  });
});

1 Ответ

1 голос
/ 11 марта 2019

Я не думаю, что объединение arrayContained и stringContained - лучший и наиболее читаемый подход здесь (если вообще возможно).

Вместо этого просто попробуйте этот метод:

    const numberOfMatches = expectedStrings.filter(x => stringToCheck.indexOf(x) > -1).length;
    expect(numberOfMatches).toBeGreaterThan(0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...