2013-05-11 36 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

相關問題