2016-06-22 7 views
-1

Ich brauche etwas Hilfe. Dies ist Fragment meines Codes, ich kann nicht Boolean von ihm zurück ("Gegenwart oder nicht") , so funktioniert alles falsch. wo habe ich mich geirrt?Winkelmesser-Test

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

Antwort

1

Ich bin mir nicht sicher, was genau Sie mit dem booleschen Wert versuchen, aber hier ist, wie es in einem Test mit angeketteten Versprechen aussehen könnte.

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

vielen Dank. Später habe ich verstanden, dass diese Bedingung "innerhalb der Kette" sein muss. – Dmytro

1

Ich weiß nicht, die Bibliothek in Frage, aber Versprechen basierten Code async, was bedeutet, dass dieser innere Code **return boolean = result;** erst nach anderen Dingen in der Hauptfunktion ausführen.

Was Sie wirklich tun müssen, lesen Sie auf Versprechen und lernen, wie Sie dann zu ketten. Wenn Sie ein Versprechen aus Ihrem Test zurückgeben, wartet es darauf, dass dieses Versprechen aufgelöst wird, bevor Sie zum nächsten Test übergehen.

+0

Dies ist mein erstes großes Testskript auf Protactor. – Dmytro