2013-05-11 96 views
1

这工作Angular E2E-是否可以在循环中调用“It”函数?

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和'use strict';确保我是全球性的。我试过在'describe'函数之外声明我。这有什么窍门吗?

回答

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)); 
}; 
+0

谢谢你的工作完美!并感谢您的快速答案! – Chris 2013-05-11 16:21:00

相关问题