我需要一些帮助。这很奇怪。我基本上正在编写一些testcafe测试,其中: 用户将转到订单摘要页面,并验证结帐页面上的总数与订单详细信息页面上的总数是否匹配。
问题: 在某些情况下,订单明细总计不足一美分(根据开发人员的说法,这不是一个值得尽快修复的错误)。例如,在结帐页面上,您的订单总额为3.50美元。在订单详细信息页面上,总计为$ 3.51
在testcafe断言中是否有办法与一分钱作斗争?
这是我的断言:
await t
.expect(totalOnCheckoutPage)
.eql(totalOnOrderDetails);
totalOnCheckoutPage和totalOnOrderDetails是选择器变量。
答案 0 :(得分:3)
您可以编写自定义util进行四舍五入。样本
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 :(得分:1)
您可以尝试使用内部断言方法
await t.expect(5).within(3, 10, 'this assertion will pass');
提取两个值的内部文本,并添加所需的舍入范围
https://devexpress.github.io/testcafe/documentation/test-api/assertions/assertion-api.html#within