Каков наилучший способ выполнить утверждение для номеров, которые отключены ".1" в testcafe - PullRequest
0 голосов
/ 24 марта 2020

Мне нужна помощь. Это странный вопрос. В основном я пишу несколько тестов testcafe, где: пользователь переходит на страницу сводки заказа и проверяет, что итоговое значение на странице оформления заказа соответствует итоговому значению на странице сведений о заказе. ,

Проблема: Есть случаи, когда общее количество деталей заказа сбрасывается на копейку (не ошибка, достойная исправления в ближайшее время. По словам разработчиков). Так, например, на странице оформления заказа сумма вашего заказа составляет 3,50 доллара. На странице сведений о заказе общая сумма составляет $ 3,51

Есть ли способ бороться с лишним пенни в утверждении testcafe?

Вот как выглядит мое утверждение:

await t
        .expect(totalOnCheckoutPage)
        .eql(totalOnOrderDetails);

totalOnCheckoutPage и totalOnOrderDetails являются переменными селектора.

Ответы [ 2 ]

3 голосов
/ 24 марта 2020

Вы можете написать пользовательский утилита для раунда. Образец

function round(x, precision) {
    var y = +x + (precision === undefined ? 0.5 : precision/2);
    return y - (y % (precision === undefined ? 1 : +precision));
}
console.log(round(3.51, 0.1))
console.log(round(3.55, 0.1))

Ссылка: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round

1 голос
/ 24 марта 2020

Можно попробовать в методе утверждения

await t.expect(5).within(3, 10, 'this assertion will pass');

извлечь внутренний текст обоих значений и добавить необходимый диапазон округления

https://devexpress.github.io/testcafe/documentation/test-api/assertions/assertion-api.html#within

...