如何验证表行中的值未使用茉莉花期望进行排序

时间:2019-07-31 06:33:23

标签: jasmine protractor

我正在尝试测试表数据是否已排序,我正在使用特定的列数据来测试数据。但是我在测试结束时遇到了一个错误,例如“ Expected false to 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']

需要测试表数据是否已排序

2 个答案:

答案 0 :(得分:2)

您似乎要对字符串而不是数字进行排序。

您应该将值从单元格更改为数字(例如,在推送时)。

您还可以检查以下库:https://www.npmjs.com/package/chai-sorted

编辑: 您还应该记住从数据中删除,

答案 1 :(得分:2)

您无需遍历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)