Cypress如何验证获取的数值仅保留1位小数?
验证数值仅显示1位小数的方法
针对你遇到的数值显示多位小数的bug,这里提供几种在Cypress中验证LengthValue仅为1位小数的方法:
方法1:正则表达式匹配格式
直接通过正则检查字符串格式,确保小数点后恰好1位数字:
cy.get('@LengthValue').then(length => { // 匹配整数部分+小数点后1位的格式,支持整数部分为多位数,小数部分1位 expect(length).to.match(/^\d+\.\d$/); });
方法2:检查小数部分长度
将字符串按小数点拆分,验证小数部分的字符数为1:
cy.get('@LengthValue').then(length => { const parts = length.split('.'); // 确保存在小数点,且小数部分长度为1 expect(parts).to.have.length(2); expect(parts[1]).to.have.length(1); });
方法3:数值格式化后对比
将获取的值转为数字,格式化为1位小数后与原字符串对比,确保没有多余的末尾0:
cy.get('@LengthValue').then(length => { const numericValue = parseFloat(length); const formattedValue = numericValue.toFixed(1); expect(length).to.equal(formattedValue); });
注意事项
- 由于
cy.invoke('val')返回的是字符串类型(input的value属性默认是字符串),所以优先从字符串层面验证更直接。 - 如果业务允许整数(比如
15这种无小数的情况),可以调整正则或拆分后的判断逻辑,比如把正则改为/^\d+(\.\d)?$/,同时判断小数部分可选且长度为1。
内容的提问来源于stack exchange,提问作者TimsKillerRabbit
相关产品推荐
相关产品推荐

