Утверждение Chai не терпит неудачу при использовании асинхронной команды?

Вы можете создать индикатор выполнения любого элемента html, для которого вы можете установить градиент. (Довольно круто!) В приведенном ниже примере фон элемента HTML обновляется линейным градиентом с помощью JavaScript:

myElement.style.background = "linear-gradient(to right, #57c2c1 " + percentage + "%, #4a4a52 " + percentage + "%)";

PS Я установил оба места percentage таким же образом, чтобы создать сложный линия. Играйте с дизайном, вы можете даже добавить границу, чтобы получить этот классический вид выполнения:)

https: // jsfiddle .net / uoL8j147 / 1 /

0
задан SamP 23 February 2019 в 16:35
поделиться

1 ответ

Чтобы ваш тест не прошел, тестирующий (я полагаю, это webdriverio) должен получить ошибку AssertionError. В вашем тесте эта ошибка будет сгенерирована chai в этой строке:

expect(value).to.equal("Thank You for your Message!2");

Но вы поймете это здесь:

catch(e) {
        console.log(e)
    } 

, так что она никогда не попадет к тестирующему, и тест будет не подведет. Попробуйте этот код:

async confirmSuccessfulSubmission() {
try {
    let value = await $("#contact_reply h1").getText()
    expect(value).to.equal("Thank You for your Message!2"); 
    } catch(e) {
        console.log(e)
        throw(e)
    } 
}

или, если вам не нужно печатать ошибку:

async confirmSuccessfulSubmission() {
    let value = await $("#contact_reply h1").getText()
    expect(value).to.equal("Thank You for your Message!2"); 
}
0
ответ дан Gilad Shnoor 23 February 2019 в 16:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: