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

查看:55
本文介绍了无法访问“it"内部的动态测试值mocha 的功能,尽管它可以在“describe"内部访问功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我能够准确地访问describe 中的动态值,但不能访问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"内部的动态测试值mocha 的功能,尽管它可以在“describe"内部访问功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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