2016-09-22 30 views
3

我一直試圖在運行時改變我的'IT'描述,知道量角器是異步的,我仍然覺得我失去了一些東西。在茉莉花中附加'IT'描述名稱

describe('Describe something', function() { 
    var testParams = [1,2,3,4,5,6,7,8,9,10]; 
    var testVar; 
    beforeEach(function() { 
     // ... 
     testVar = "Eyooo"; 
    }); 

for (var i = 0; i < testParams.length; i++) { 
    (function (testSpec) { 
    // ... 

    it('should do something '+testVar , function() { 
    //... 
     console.log(testVar); 

    }); 

    // ... 
    })(testParams[i]); 

}; 

});

它的這一部分,我一直有與

it('should do something '+testVar , function() { 

知道該案件正在處理異步,我一直有一個艱難的時間試圖找出當「它」的描述是加載麻煩。

當我的神符上面,這是我的輸出

Describe something                                    
√ should do something undefined                                
Eyooo                                        
√ should do something undefined                                
Eyooo 

所以結果是有點明顯,但我一直有一個艱難的時間環繞我的頭解決這個問題。我認爲這違背了行業標準,但它確實有助於我的案子。

我也嘗試過這樣的事情..

it('should do something', function() {  
    testVar = "Eyooo"; 
}); 

it('should do something '+testVar, function() { 
    //... 
    console.log(testVar);  
}); 

無濟於事

任何輸入歡迎!

+0

@Kishan Patal我不應該把'任何'的輸入是歡迎的,建設性的意見是歡迎壽。 – Rheijn

回答

1

這是一個很好的問題。不得不頭腦風暴!

你是發現錯誤的根本原因。它的行爲異步 我看到動態構造的"IT"塊描述的解決方案是不通過BeforeEach()的指定名稱,但調用自定義函數來進行

請檢查您報價,但修改,以構建IT相同的例子描述

describe('Describe something', function() { 
    var testParams = [1,2,3,4,5,6,7,8,9,10]; 
    var testVar; 
    for (var i = 0; i < testParams.length; i++) { 
     (function (testSpec) { 
      // ... 

      it(getName(), function() { 
       //... 
       console.log(testVar); 

      }); 

      // ... 
     })(testParams[i]); 

    }; 
    function getName(){ 
     testVar = "Eyooo"; 
     return 'should do something '+testVar 
    } 
}); 

另一個例子,而不是寫建設另一個IT塊中描述的邏輯,構建它在另一自定義函數,並調用它

describe('Describe something', function() { 
    var testVar 
    it(getName(), function() { 
     //... 
     console.log(testVar); 
    }); 
    function getName(){ 
     testVar = "Eyooo"; 
     return 'should do something '+testVar 
    } 
}); 
+0

在此有任何更新..有興趣知道這是否適合你 – AdityaReddy

+0

從hollidays回來,對不起! 但它沒有爲我工作,我可以得到一個靜態字符串打印在行中,但我不能動態地設置和獲取基於測試的數據。 今晚我會看看看看我是否可以重現它。 – Rheijn