2017-05-29 45 views
0

我有這樣的代碼循環上量角器測試

describe("Main test", function(){ 
    var temp = []; 
    it("actual test1", function(){ 
    ... 
    }); 
    describe("sub main test1", function(){ 
     it("test", function(){ 
     temp.push(1); 
     }); 
    }); 
    describe("sub main test2", function(){ 
     for(var i=0;i<temp;i++){ 
      it("test" + temp, function(){ 
      ... 
      }); 
     } 
    }); 
}); 

一些事當測試開始時,for循環執行,當時的temp是空的。在這種情況下,for循環內的it塊未執行。如何在sub main test1描述塊之後執行for循環。這樣temp有一些數據。

回答

0

您應該在beforeEachbeforeAll塊中執行初始化工作(請參閱reference)。

因此,下面的代碼應該做的伎倆。

describe('Main test', function() { 
    var temp; 
    beforeEach(function() { 
    temp = []; 
    temp.push(1); 
    }); 
... 
}); 

注:

基於您的評論,你正在努力實現是一個有點不對勁,因爲it塊不應該對進一步it塊任何初始化。 每塊it塊應該能夠單獨運行。

+0

感謝您的回覆。這應該是有效的,但是'sub'test1'中的'it'塊'描述'塊會執行特定的操作,比如獲取文本並將其推送爲'temp'變量,就像明智的那樣有很多「describe」塊包含「it」塊做特定的操作並推到臨時位置。實際上,如果我在執行「it」塊之前爲temp變量賦值,它正在工作。但是我期望的是'sub main test2'描述塊應該在'sub main test1'之後執行。在這種情況下,temp變量有一些數據。有沒有這樣的事情或任何想法以不同的方式做。 – Sam

+0

查看我的更新回答。 – Ioan