如何验证 table 行中的值未使用 jasmine expect 排序
How to verify values in table row are not sorted using jasmine expect
我正在尝试测试 table 数据是否已排序,我正在使用特定的列数据来测试数据。但是我在测试结束时遇到错误 "Expected false to be true."
像这样我正在尝试
var perGain = [];
var elm = element.all(by.repeater('stock in transactions').column('stock.gain'));
elm.each((td) => {
td.getText().then((val) => {
perGain.push(val);
})
}).then(() => {
expect(perGain.every((val, i) => (i < perGain.length - 1 ? val <= perGain[i + 1] : true)) === true).toBe(true);
});
这是我在 perGain 中得到的数组
[ '-42,314.40',
'-34.45',
'-29,666.52',
'-30.47',
'-22,283.50',
'-36.61',
'-22,267.92',
'-33.41',
'-20,097.32',
'-31.53',
'-18,403.00',
'-51.73',
'-18,354.86',
'-20.68',
'-18,331.67',
'-46.54',
'-17,842.30']
需要测试table数据是否排序
看来您正在尝试对字符串而不是数字进行排序。
您应该将值从单元格更改(例如,在推送时)更改为数字。
你也可以查看这个库:https://www.npmjs.com/package/chai-sorted
编辑:
您还应该记得从数据中删除 ,
。
你不需要循环遍历td数组并进行个人期望。您手动对给定数组进行排序,并检查排序后的数组是否不等于原始数组。看下面的例子。
var tdValues = element.all(by.repeater('stock in transactions').column('stock.gain')).getText();
var tdValuesSorted = tdValues.then(function(values){
return values.sort()
});
expect(tdValues).not.toEqual(tdValuesSorted)
我正在尝试测试 table 数据是否已排序,我正在使用特定的列数据来测试数据。但是我在测试结束时遇到错误 "Expected false to be true."
像这样我正在尝试
var perGain = [];
var elm = element.all(by.repeater('stock in transactions').column('stock.gain'));
elm.each((td) => {
td.getText().then((val) => {
perGain.push(val);
})
}).then(() => {
expect(perGain.every((val, i) => (i < perGain.length - 1 ? val <= perGain[i + 1] : true)) === true).toBe(true);
});
这是我在 perGain 中得到的数组
[ '-42,314.40', '-34.45', '-29,666.52', '-30.47', '-22,283.50', '-36.61', '-22,267.92', '-33.41', '-20,097.32', '-31.53', '-18,403.00', '-51.73', '-18,354.86', '-20.68', '-18,331.67', '-46.54', '-17,842.30']
需要测试table数据是否排序
看来您正在尝试对字符串而不是数字进行排序。
您应该将值从单元格更改(例如,在推送时)更改为数字。
你也可以查看这个库:https://www.npmjs.com/package/chai-sorted
编辑:
您还应该记得从数据中删除 ,
。
你不需要循环遍历td数组并进行个人期望。您手动对给定数组进行排序,并检查排序后的数组是否不等于原始数组。看下面的例子。
var tdValues = element.all(by.repeater('stock in transactions').column('stock.gain')).getText();
var tdValuesSorted = tdValues.then(function(values){
return values.sort()
});
expect(tdValues).not.toEqual(tdValuesSorted)