2017-09-28 5 views
0

Je voulais créer une étape de test de concombre avec un rapporteur, mais je me suis attendu à ce que le '2019' ne soit pas lisible. . Voici mon code source:TypeError '2019' n'est pas applicable

 this.Then(/^I check that the calculated year from the current month\(if current month >= 6 ==> current year = current year \+ 2,else current year = current year \+ 1\)$/,function(callback) { 

      var actualDate=new Date(); 
      var actualYear=actualDate.getFullYear(); 
      var actualMonth=actualDate.getMonth()+1; 
      //expect(targetAmountPO.getYesInflationLabel().isDisplayed()).eventually.to.equal(true).then(callback); 
      targetAmountPO.getYesInflationLabel().isDisplayed().then(function() { 
       targetAmountPO.getYesInflationCorrectionAnswer().isSelected().then(function(){ 
        targetAmountPO.getYesInflationLabel().getAttribute("outerText").then(function(text,callback){ 
         //console.log(text); 
         var splittedString=text.split(":"); 
         //console.log(splittedString[1]); 
         if(actualMonth>=6) 
         { 
          actualYear+=2; 
          var yearString=actualYear.toString(); 
          console.log(yearString); 
          expect(yearString).to.eventually.contain(splittedString[1]).and.notify(callback); 

          //console.log(actualYear); 

         } 
         else 
         { 
          expect(actualYear+1).to.include(splittedString[1]).and.notify(callback); 

         } 

       }) 

       }) 

      }) 


     }) 

À l'attendre (yearString) .to.eventually.contain (splittedString [1]) and.notify (rappel);

J'ai obtenu le '2019' n'est pas possible. L'année est 2019 c'est bien. Mais pourquoi n'est-ce pas possible?

Pouvez-vous m'aider?

Répondre

1

Comme vous l'avez bien géré la promesse retournés par getAttribute("outerText") les valeurs yearString et splittedString sont juste des valeurs réelles et non des promesses que vous pouvez simplement utiliser une affirmation chaï et non un chaï comme l'affirmation promise comme

expect(yearString).to.contain(splittedString[1]) 
callback() 

et vous serez en mesure de tester cela pour s'assurer qu'il ne rappelle pas avant que l'assertion fait effectivement le contrôle

+0

Merci Ross. Je dois comprendre la promesse, parce que je suis développeur JAVA mais j'ai eu le test AngularJS E2E. – user3654435