2016-06-22 24 views
-1

私は助けが必要です。 これは私のコードの断片です。私はブール値を返すことはできません( "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

これはprotactorの最初の大きなテストスクリプトです。 – Dmytro