Один из моих тестов ожидает, что текст сообщения об ошибке будет одним из нескольких значений. Начиная с getText()
возвращает обещание Я не могу использовать toContain()
жасмина. Ниже не будет работать, так как protractor
(jasminewd
под капотом) не разрешило бы обещание во второй части согласовани, 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])
Использовать 'chai-as-обещанный' –
@BenjaminGruenbaum, если бы вы могли разработать предложение в ответе с примером - было бы здорово, так как это звучит как хороший законный альтернативный вариант для пользовательского совпадения. Спасибо! – alecxe
В общем, мне не нравится предлагать библиотеки в качестве ответов на вопросы, так как это дает рекомендации по библиотечным вопросам - я сказал, что на самом деле это, вероятно, лучшая альтернатива в этом случае. –