附加到' IT'茉莉花中的描述名称

时间:2016-09-22 09:35:54

标签: javascript jasmine protractor

我一直试图改变我的“IT'关于运行时的描述,知道量角器是Async,我仍然觉得我错过了什么。

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 () {

知道案件正在处理异步,我一直在努力想弄清楚什么时候这个&#39;它&#39;说明已加载。

当我符文时,这是我的输出

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);     
});

无济于事

欢迎任何输入!

1 个答案:

答案 0 :(得分:1)

这是一个很好的问题。不得不集思广益!

您在reg上找到错误的根本原因。它表现为异步 我看到动态构建"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
    }
});