2015-03-03 38 views
0

我能够访问正好描述内部的动态值,但不能访问它内部的块。 (主要是我得到的数组的最后一个值)尽管可以在“describe”函数中访问,但无法访问mocha“it”函数中的动态测试值

for(var i =0 ;i< dynamicValues.length; i++){ 
 
    (function wrap(dynamicValue){ 
 
    describe("condition", function(){ 
 
     // It is logging correct value. 
 
     console.log(dynamicValue) 
 
     it("should be accessible", function(){ 
 
     // It is not logging correct value, but logging last value of array. 
 
     console.log(dynamicValue); 
 
     } 
 
    }) 
 
    }(dynamicValues[i])); 
 
}

如何获得同样的“环境”里面描述“它”块? (该简化我的逻辑的版本。我正在使用的数组元素的位置动态对象)

如果有功能阵列,

for(var i =0 ;i< dynamicFunctions.length; i++){ 
 
    (function wrap(dynamicFunction){ 
 
    describe("condition", function(){ 
 
     // It is executing all functions. 
 
     dynamicFunction.apply(null) 
 
     it("should be accessible", function(){ 
 
     // It is always executing last function of the array. 
 
     dynamicFunction.apply(null); 
 
     } 
 
    }) 
 
    }(dynamicFunctions[i])); 
 
}

回答

0

使用.bind()

for(var i = 0, len = dynamicValues; i < len; i++) { 
 
    describe('condition', function (dynamicValue) { 
 
    it('should be accessible', function (dynamicValue) { 
 
     console.log(dynamicValue); 
 
    }.bind(null, dynamicValue); 
 
    }.bind(null, dynamicValues[i]); 
 
}

+0

试过。它不工作。 – 2015-03-03 11:18:48

+0

这很奇怪,因为我刚刚尝试过它,它的工作原理。你能分享一些你的代码吗? – avetisk 2015-03-03 13:25:45