无法访问"it"内部的动态测试值.尽管可以在“描述"内部访问摩卡功能.功能 [英] Cannot able to access dynamic test values inside "it" function of mocha, though it is accessible inside "describe" function
本文介绍了无法访问"it"内部的动态测试值.尽管可以在“描述"内部访问摩卡功能.功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我能够访问精确描述内部的动态值,但不能访问其内部的动态值. (主要是获取数组的最后一个值)
I was able to access dynamic values inside describe exactly but not inside it block. (mostly I am getting last value of the array)
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]));
}
如何在"it"块中获得相同的描述环境"? (这是我逻辑的简化版本.我使用动态对象代替数组元素)
How to get same "environment" of describe inside "it" block? (This is simplified version of my logic. I am using dynamic objects in the place of array elements)
如果有函数数组,
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]));
}
推荐答案
使用.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]);
}
这篇关于无法访问"it"内部的动态测试值.尽管可以在“描述"内部访问摩卡功能.功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文