如何验证表行中的值未使用jasmine expect排序
我试图测试表数据是否已排序,我使用特定的列数据来测试数据。但是我在测试结束时得到了一个错误,就像预期的false为true一样 像这样我正在努力如何验证表行中的值未使用jasmine expect排序,jasmine,protractor,Jasmine,Protractor,我试图测试表数据是否已排序,我使用特定的列数据来测试数据。但是我在测试结束时得到了一个错误,就像预期的false为true一样 像这样我正在努力 var perGain = []; var elm = element.all(by.repeater('stock in transactions').column('stock.gain')); elm.each((td) => { td.getText().then((val) => {
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得到的一个数组
['-42314.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',
“-17842.30”]
需要测试表数据是否已排序看起来您正在尝试对字符串而不是数字进行排序 您应该在将值从单元格推到数字时进行更改 您还可以查看此库: 编辑:
您还应该记住从数据中删除。您不需要在td阵列中循环,也不需要进行单独的expect。手动对给定数组进行排序,并检查排序后的数组是否与原始数组不相等。看看下面的例子
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)