测试比较不能按预期工作

时间:2015-07-17 13:46:46

标签: angularjs automated-tests protractor angularjs-e2e

1)我的量角器代码中有一个非常奇怪的错误。我不明白它可能是什么原因。

it('should filtering by one-sided < interval correctly', function () {
    filter_field.click();
    var filter_field_text = filter_field.element(by.css('input'));
    var exist_value = element(by.xpath('//tr[@data-row-index="1"]/td[@data-column-index="5"]/div')).getText().then(function (value) {
        var floatValue = parseFloat(value);
        return (floatValue);
    });
    filter_field_text.sendKeys("<");
    filter_field_text.sendKeys(exist_value);
    browser.sleep(3000);
    var filtered_values = element.all(by.xpath('//tr/td[@data-column-index="5"]/div'));
    filtered_values.each(function (element, index) {
        var current_value = element.getText().then(function (value) {
            var floatValue = parseFloat(value);
            return (floatValue);
        });
        expect(exist_value <= current_value).toBe(true);
    });
    if (true) console.log("Test done!");
});

我得错了结果:'预计错误是真的' 虽然,绝对相似的代码工作正常:

expect(exist_value1 >= current_value & exist_value2 <= current_value).toBe(true);

2)我也有一个关于复杂期望的问题。我可以这样做:

html, body { height: 100%;background: url("https://pp.vk.me/c628218/v628218217/d86f/Y2PKptBEnS0.jpg");}

在我的测试中它不起作用。

2 个答案:

答案 0 :(得分:0)

您可以在expect语句之前打印所有这些值吗?如果通过某种计算得到浮点值,浮点值可能会有所不同。使用parseFloat(yourString).toFixed(2)获取浮点值,直到小数点后2位。

答案 1 :(得分:0)

今天我找到了问题的答案。 如果有人有同样的问题:比较应该在函数中,因为它是一个js方法。

这是正确的代码:

it('should sorting by interval correctly', function () {
filter_field.click();

if (column_body.get(0).isPresent()) {
  var exist_value1 = column_body.get(0).getText().then(function (value) {
    var floatValue = parseFloat(value);
    return (floatValue);
  });
  var exist_value2 = column_body.get(0).getText().then(function (value) {
    var floatValue = parseFloat(value);
    return Math.round(floatValue) + 1;
  });
  filter_field.sendKeys(exist_value1);
  filter_field.sendKeys('-');
  filter_field.sendKeys(exist_value2);
  var filtered_values = element.all(by.xpath(column_body_xpath));

  filtered_values.each(function (element) {
    var current_value = element.getText().then(function (value) {
      var floatValue = parseFloat(value);
      expect((exist_value1 <= floatValue) && (exist_value2 >= floatValue)).toBeTruthy();  //INTO SCOPES!!!
    });
  });
}
else {
  expect(true).toBe(false);
}

console.log("ps-grid-column-filter-range_spec_8");
  });