2016-06-22 2 views
-1

Мне нужна помощь. Это фрагмент моего кода, я не могу вернуть из него boolean («present or not») , поэтому все работает некорректно. где я ошибся?Испытание утяжелителя

describe("first TEST", function() { 

    var boolean, parsingAllProfiles, getRandomProfile, randomProfile; 

    it("present or not", function() { 
     freelan.notFreelancersFound.isPresent().then(function (result) { 
      **return boolean = result;** 
     }) 
    }) 

    if (boolean) { 
     console.log("NOTHING!!!!!") 
    } else { 

     it("array of profiles", function() { 
      Promise.resolve(freelan.parsingAllProfilePage()).then(function (profiles) { 
       var arrForCheck = freelan.cloneArray(profiles); 
       freelan.checkKeywordInProfile(arrForCheck, params.keyword); 
       return randomProfile = profiles[Math.floor(Math.random() * profiles.length)]; 
      }) 
     });   
    } 
}); 

ответ

1

Я не уверен, что вы пытаетесь сделать с булевым, но вот что это могло бы выглядеть в тесте с прикованными обещаниями.

describe("first TEST", function() { 

    var boolean, parsingAllProfiles, getRandomProfile, randomProfile; 

    it("present or not", function() { 
     freelan.notFreelancersFound.isPresent().then(function(result) { 
      if (result) { 
       freelan.parsingAllProfilePage().then(function(profiles) { 
        var arrForCheck = freelan.cloneArray(profiles); 
        expect(freelan.checkKeywordInProfile(arrForCheck, params.keyword).toBe(true); 
       }); 
      } else { 
       console.log("NOTHING!!!!!"); 
      } 
     }); 
    }); 

}); 
+0

большое спасибо. позже я понял, что условие должно быть «внутри цепи». – Dmytro

1

я не знаю библиотеки в вопросе, но обещание на основе коды асинхр, а это означает, что этот внутренний код **return boolean = result;** не будет работать до тех пор, после других вещей в главной функции.

it("present or not", function() { 
     freelan.notFreelancersFound.isPresent().then(function (result) { 
      **return boolean = result;** 
     }) 
}) 

Что вам действительно нужно сделать, это прочитать обещания и научиться цеплять тогда. Если вы вернете обещание от своего теста, он будет ждать этого обещания, прежде чем перейти к следующему тесту.

+0

Это мой первый большой тестовый скрипт на протакторе. – Dmytro

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