By.repeater不使用过滤器

时间:2014-09-04 14:49:42

标签: angularjs testing protractor

我有以下函数来查看我的转发器中的绑定(例如{{car.details.year}})是否与预期绑定数组匹配。

    var ngrepeat = 'car in filteredInventory = (vm.vehicles | filter: search | orderBy:vm.sort.value)',
    expectVehicleColumns = function(binding, expectations, name) {
        element.all(By.repeater(ngrepeat).column(binding)).then(function(arr) {
            //This fails when I add a filter
            expect(arr.length, 'Number of displayed vehicles').to.eql(expectations.length);
            arr.forEach(function(wd, i) {
                wd.getText().then(function(text) {
                    console.log(text);
                    expect(text, name).to.eql(expectations[i]);
                });
            });
        });
    };

然后实现了这样的

    expectVehicleTitles = function(expectedVehicleTitles) {
        var binding = '{{car.details.year}} {{car.details.make}} {{car.details.model}} {{car.details.trim}}';
        expectVehicleColumns(binding, expectedVehicleTitles, 'Vehicle Title');
    };

当我没有过滤器时它可以正常工作,它可以看到转发器中的所有车辆。但是,当我在执行element(By.model('filter')).sendKeys('some filter');之后运行该函数时,即使它在浏览器上看起来很好,数组长度也是0。

注意filter: search因为search是一种使用$scope.filter

的方法

0 个答案:

没有答案