Angular E2E-可以在循环中调用'It'函数吗?

时间:2013-05-11 15:58:08

标签: angularjs

这有效

it('should create a report for index: ', function() {
    var dataLength = window.test.parameters.length;
    for (var i = 0; i < dataLength; i++){
        var parameterObject = window.test.parameters[i];
        var propNumber = parameterObject.propertyNumber;
        element(":contains('" + propNumber + "')").click();
        element(":button('View')").click();
        expect(element('div *:contains(' + reportName + ')').count()).toEqual(4);
    }
});

这不是

var dataLength = window.test.parameters.length;
for (var i = 0; i < dataLength; i++){
    it('should create a report for index: ', function() {
        var parameterObject = window.test.parameters[i];
        var propNumber = parameterObject.propertyNumber;
        element(":contains('" + propNumber + "')").click();
        element(":button('View')").click();
        expect(element('div *:contains(' + reportName + ')').count()).toEqual(4);
    });
};

我的目的是参数化这个测试,每次使用不同的参数组合多次运行它。 我已尝试删除var并使用严格的&#39 ;;确保我是全球性的。我试过在“描述”之外宣布我。功能。这有诀窍吗?

1 个答案:

答案 0 :(得分:4)

it可能是异步的,尝试用词法来限定它。

var dataLength = window.test.parameters.length;
for (var i = 0; i < dataLength; i++){
    it('should create a report for index: ', function(i) {
        return function () {
            var parameterObject = window.test.parameters[i];
            var propNumber = parameterObject.propertyNumber;
            element(":contains('" + propNumber + "')").click();
            element(":button('View')").click();
            expect(element('div *:contains(' + reportName + ')').count()).toEqual(4);
        };
    }(i));
};