2016-09-22 2 views
3

Я пытаюсь изменить описания «IT» во время выполнения, зная, что транспортир Async, я все еще чувствую, что что-то не хватает.Добавить в название описания «IT» в jasmine

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

Зная, что дела решаются Асинхронный, у меня были трудные времена, пытаясь выяснить, когда описание «это» загружается ,

Когда я руна выше это мой выход

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

без толку

Любой вход Добро пожаловать!

+0

@ Kishan Patal Я не должен был вводить «Любой» вход приветствуется, конструктивный вход приветствуется. – Rheijn

ответ

1

Это был отличный вопрос. Если бы мозговой штурм много!

Вы находитесь на месте, где корень вызывает ошибку. Он ведет себя асинхронной И решение, которое я вижу, чтобы динамически создавать описание из "IT" блоков к присвоить имя не через BeforeEach() но вызов пользовательской функции, чтобы сделать так

Пожалуйста, проверьте тот же самый пример, который вы процитировали, но модифицированную для построения ИТ описание

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

другой пример, вместо того, чтобы писать логику построения описания в другой ИТ-блока, построить его в другой пользовательской функции и назовите его

describe('Describe something', function() { 
    var testVar 
    it(getName(), function() { 
     //... 
     console.log(testVar); 
    }); 
    function getName(){ 
     testVar = "Eyooo"; 
     return 'should do something '+testVar 
    } 
}); 
+0

любые обновления на этом .. Заинтересован знать, если это сработало для вас – AdityaReddy

+0

Назад из hollidays, Извините! Но это не сработало для меня, я могу получить статическую строку, напечатанную в строке, но я не могу динамически установить и получить данные на основе теста. Я посмотрю сегодня вечером и посмотрю, смогу ли я воспроизвести его. – Rheijn

Смежные вопросы