Один из моих тестов ожидает, что текст сообщения об ошибке будет одним из нескольких значений. Поскольку getText()
возвращает обещание, я не могу использовать toContain()
jasmine matcher. Следующее не будет работать, поскольку protractor
(jasminewd
under-the-hood) не разрешит обещание во второй части соединителя toContain()
в этом случае:
expect(["Unknown Error", "Connection Error"]).toContain(page.errorMessage.getText());
Вопрос: Есть ли способ проверить, находится ли элемент в массиве с жасмином + транспортиром, где элемент является обещанием?
Другими словами, я ищу инверсию toContain()
, чтобы expect()
неявно разрешал обещанное обещание.
В качестве обходного пути я могу явно решить обещание с помощью then()
:
page.errorMessage.getText().then(function (text) {
expect(["Unknown Error", "Connection Error"]).toContain(text);
});
Я не уверен, что это лучший вариант. Я также был бы в порядке с решением, основанным на сторонних моделях, таких как jasmine-matchers
.
В качестве примера такой тип утверждения существует в Python:
self.assertIn(1, [1, 2, 3, 4])