无法访问"it"内部的动态测试值.尽管可以在“描述"内部访问摩卡功能.功能 [英] Cannot able to access dynamic test values inside "it" function of mocha, though it is accessible inside "describe" function

查看:106
本文介绍了无法访问"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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆